質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1117閲覧

メソッドはかけたけどそれをどのように実装すればいいかわからない

yuruyuru

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2021/04/12 23:52

Androidの計算問題アプリを作っていて自分で出題される問題の数字の範囲を変えることができるように設定画面を作っています。
Edit Textでどこからどこまでという範囲を入力できるようにしたのですが入力されていないときエラーメッセージを表示させたいためそのメソッドを書きました。しかしメソッドを書いただけで何も起こりません。
入力が完了したときにチェックをしたいのですがどうすれば良いでしょうか。

設定画面にはEdit Textが4つと設定が終わった後に問題画面に移行するためのボタンがありますonClickはそのボタンが押された時の処理です。

java

1public class Setting extends AppCompatActivity { 2 3public void check(View view) { 4 EditText editText1 = (EditText)findViewById(R.id.number1_1); 5 String num1_1 = editText1.getText().toString(); 6 if (num1_1.isEmpty()) { 7 editText1.setError("文字を入力してください"); 8 } 9 } 10public void onClick(View target) { 11 //入力されたテキストを取得 12 EditText editText1 = (EditText)findViewById(R.id.number1_1); 13 String num1_1 = editText1.getText().toString(); 14 15 EditText editText2 = (EditText)findViewById(R.id.answer); 16 String num1_2 = editText2.getText().toString(); 17 18 EditText editText3 = (EditText)findViewById(R.id.number2_1); 19 String num2_1 = editText3.getText().toString(); 20 21 EditText editText4 = (EditText)findViewById(R.id.number2_2); 22 String num2_2 = editText4.getText().toString(); 23 24 //int型に変換 25 number[0]=Integer.parseInt(num1_1); 26 number[1]=Integer.parseInt(num1_2); 27 number[2]=Integer.parseInt(num2_1); 28 number[3]=Integer.parseInt(num2_2); 29 30 //次の画面に設定データを渡して画面移動 31 Intent intent = new Intent(this,Question.class); 32 for (int i=0;i<4;i++) { 33 intent.putExtra("data_"+i,number[i]); 34 } 35 intent.putExtra("mark",mark_number);//mark_numberは足し算、引き算などの符号の設定を番号で表したものです 36 startActivity(intent); 37 } 38 39}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/04/12 23:54

呼び出していないのになぜ何かが起こると思ったのか謎です。 これをどこで呼び出すか答えよという宿題ですか?
yuruyuru

2021/04/13 00:06 編集

はい。 onClick内で使ってもデータが入っていないのは変わらないので画面が落ちてしまいます。 レベルが低いかもしれませんが宿題ではないです。(学校の課題なら自分でやれと思われる可能性があるので一応否定しておきました。不快に思われたのならすいません。)
m.ts10806

2021/04/13 00:15

そもそもどのように使われるかというのがあっての「実装」なので、メソッドだけ書いて後はどうしたらいいかというのは手順として間違ってます。
yuruyuru

2021/04/13 00:26

入力が完了したときにこのメソッドを使いたいです。 画面が移動する前にエラーメッセージを表示させてアプリを使っている人に修正させるようにしたです。 これがどのように使われるかということではないのでしょうか。。 このような機能を実装したいのですが難しいでしょうか
hoshi-takanori

2021/04/13 00:38

ボタンが押された時に onClick を実行したいということなら、onCreate メソッドで setOnClickListener すれば良いでしょう。 あと、設定画面ということなら入力内容は次の画面に渡すだけでなく、SharedPreference などに保存したいところですし、入力欄が空だったらエラーではなくデフォルト値 (たぶん全範囲) にする方が自然な気がします。
m.ts10806

2021/04/13 00:41

メソッドだけ書いて後はどうしたらいいかというのは手順として間違ってます。 >難しいでしょうか 基準が質問者さんなら「難しい」 そうでないなら「大抵のことはできる」です。 もっと基本的なところから見直したほうが良いのではと。ここで答えだけもらったとて身につきません。(それに設計どうなってるか分からないと他者には答えようがないところもあります)
yuruyuru

2021/04/13 00:44

hoshi-takanoriさん ありがとうございます。 試してみます。
yuruyuru

2021/04/13 00:48

t.ts10806さん すいません。自分の実力的に難しいかどうかを聞いたわけではありませんでした。 どのようにすればできるかという質問なのでみになるかどうかは関係ないです。 いろいろ考えた上でおしゃってくださっているのかもしれませんが本当にすいません。
m.ts10806

2021/04/13 01:13

細かいこと言うとあくまで赤の他人としては「書けた」と「どうやって実装すれば」に矛盾を感じるという点です。 動作確認できてないものを「書けた」と言ってるのはおかしいと思います。実装できたなら「書けた」と言ってもいいでしょうけど。 こういう細かいことはけっこう大事です。回答者はあくまで赤の他人ですから。 メソッド単体でモックデータでも投入して動作確認されたのでしたらその旨も書かれないと他人には伝わりませんので。
guest

回答1

0

自己解決

質問依頼の欄でアドバイスがあったので自己解決ということにさせていただきます。

投稿2021/04/13 00:49

yuruyuru

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/04/13 01:05

どのようにして解決に至ったのか書かれないと「回答」としても「自己解決」としても不十分です。 下記参考に。 > https://teratail.com/help#resolve-myself また後から読む人のためにも、具体的な解決手順を記載してください。 ちなみに、メソッドの使い方すら分からない状態では何もできないので、やはり基礎からやってください。 質問内容から感じたことそのままです。 howばかり追い求めても何もできません。 他人に作ってもらいたいわけじゃないですよね?
m.ts10806

2021/04/13 01:07

メソッドだけ出されたところでコンポーネントや要素がどう配置されているか、イベントがどう設計、設定されているか分からないことには他人には答えようがないという意図のコメントもしています。設計が〜の部分。 メソッドだけコード出されても「使うように実装しては」くらいしか答えようがないのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問