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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1686閲覧

Android StudioでNumberPickerが動きません。

souja

総合スコア13

Java

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/10/15 05:25

編集2019/10/18 03:31

以前に質問させていただいたアプリの強制終了は解決したのですが、今度はNumberPickerが全く動かなくなりました。実現したい動作は3けたの数字をNumberPickerで選択して「OK」ボタンを押すと数字が表示されてその後に「次へ」を押すと次のアクティビティへ移るというものです。次のアクティビティへ移ることはできるのですがNumberPickerが全く反応せず、0が表示されるだけという状態になっています。ログを見てもエラーが見当たらず困っています。どなたか教えてください。
以下がコードです。

java

1コードpackage com.example.soja.page1; 2 3import androidx.appcompat.app.AppCompatActivity; 4 5import android.content.Intent; 6import android.os.Bundle; 7import android.view.View; 8import android.widget.Button; 9import android.widget.NumberPicker; 10import android.widget.TextView; 11 12public class nextpage2Activity extends AppCompatActivity { 13 private NumberPicker numPicker0, numPicker1, numPicker2; 14 private TextView pickerTextView; 15 16 private String[] figures = new String[2]; 17 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_nextpage2); 21 22 numPicker0 = findViewById(R.id.numPicker0); 23 numPicker1 = findViewById(R.id.numPicker1); 24 numPicker2 = findViewById(R.id.numPicker2); 25 26 Button pickerButton1 = findViewById(R.id.button1); 27 28 numPicker0.setMaxValue(9); 29 numPicker0.setMinValue(0); 30 31 numPicker1.setMaxValue(9); 32 numPicker1.setMinValue(0); 33 34 numPicker2.setMaxValue(9); 35 numPicker2.setMinValue(0); 36 37 38 pickerButton1.setOnClickListener(new View.OnClickListener() { 39 public void onClick(View v) { 40 figures[0] = String.valueOf(numPicker0.getValue()); 41 figures[1] = String.valueOf(numPicker1.getValue()); 42 figures[2] = String.valueOf(numPicker2.getValue()); 43 44 String str = String.format("%s%s%s%", figures[0], figures[1], figures[2]); 45 46 pickerTextView.setText(Integer.valueOf(str)); 47 } 48 }); 49 50 51 52 Button button = findViewById(R.id.button4); 53 54 //ボタンが押された時の処理// 55 button.setOnClickListener(new View.OnClickListener() { 56 public void onClick(View view) { 57 //インテントの作成// 58 Intent intent = new Intent(nextpage2Activity.this, nextpage3.class); 59 startActivity(intent); 60 } 61 }); 62 } 63} 64

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

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

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

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

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

guest

回答1

0

ベストアンサー

OnCreate は呼ばれていないようですが?

投稿2019/10/15 18:17

jimbe

総合スコア12646

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

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

souja

2019/10/16 03:39

ご回答ありがとうございます。具体的にはどこを直した方がいいのでしょうか?
jimbe

2019/10/16 03:42

まず, なぜ onCreate と OnCreate があるのでしょうか.
souja

2019/10/16 03:51

すみません、OnCreateはミスでした。
souja

2019/10/16 03:54

onCreateにに直したところ、onCreate(Bundle) is already defined in 'com.example.soja~'というエラーがでてしまいます。これの対処法がわからなくて困っています。
jimbe

2019/10/16 03:59 編集

でしたら, OnCreate の機能内容を onCreate に入れて, OnCreate は(紛らわしいので)削除すると良いかと思います. ご質問に, 修正したコードとエラー全文を追記して頂けますか. その際は, 入力欄上部の <code> を押すと出てくる, ``` で挟まれた 「コード」を置き換える形にすると, 専用の枠内にコードが表示されるようになりますので, ご利用頂くと見易くなって助かります.
souja

2019/10/16 04:31

謝って自己解決の方に書いてしまいましたが上の質問も編集しました。
jimbe

2019/10/16 06:34

同じメソッドが2つ以上あればエラーになるのは java (に限りませんが) では当然です. 落ち着いて, 一つに纏めてください.
souja

2019/10/16 06:52

なるほど!エラーが消えました!ありがとうございます! ですが、NumberPickerがまだ動かないです、、、
jimbe

2019/10/16 10:05

修正されたコードをご提示願えますか.
souja

2019/10/17 04:10

すいません。一番上の質問の部分を更新して修正したコードをのせています。
souja

2019/10/17 04:24

たびたびすみません。NumberPickerは動くようになったのですが、その後の表示ボタンを押してもNumberPickerの数字が表示欄に表示されず、アプリが停止してしまいます。
souja

2019/10/18 03:29 編集

以下がエラーです。 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.soja.page1, PID: 26476 java.util.UnknownFormatConversionException: Conversion = 'End of String' at java.util.Formatter$FormatSpecifierParser.peek(Formatter.java:2641) at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2602) at java.util.Formatter.parse(Formatter.java:2557) at java.util.Formatter.format(Formatter.java:2504) at java.util.Formatter.format(Formatter.java:2458) at java.lang.String.format(String.java:2770) at com.example.soja.page1.nextpage2Activity$1.onClick(nextpageActivity.java:47) at android.view.View.performClick(View.java:6294) at android.view.View$PerformClick.run(View.java:24770) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Application terminated.E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.soja.page1, PID: 26476 java.util.UnknownFormatConversionException: Conversion = 'End of String' at java.util.Formatter$FormatSpecifierParser.peek(Formatter.java:2641) at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2602) at java.util.Formatter.parse(Formatter.java:2557) at java.util.Formatter.format(Formatter.java:2504) at java.util.Formatter.format(Formatter.java:2458) at java.lang.String.format(String.java:2770) at com.example.soja.page1.nextpageActivity$1.onClick(nextpageActivity.java:47) at android.view.View.performClick(View.java:6294) at android.view.View$PerformClick.run(View.java:24770) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Application terminated.
souja

2019/10/17 05:33

switch文などでidごとに分岐などをしたほうがいいのでしょうか?
jimbe

2019/10/17 07:43

> 一番上の質問の部分を更新して修正したコードをのせています。 ご質問にあるコードは, @Override onCreate() が変な位置にありますし, {} の対応が取れていません. 不要になったコードは残さず消してください. 編集履歴は残りますので, 古いコードが必要になったら取り出せますので. エラー表示されている中で発生個所と思われる部分は > com.example.srkmmtky1260.page1.nextpage2Activity$1.onClick(nextpageActivity.java:47 ですが, パッケージ名がご提示のコードと違います. ということは, ご提示のコードは最新ではないということで, 問題を探すことができません. こちらは, コードの枠の右上にある [+] を押して android studio にコピペして確認していますので, nextpage2Activity.java の全文をコード部分に上書きして頂けますか.
souja

2019/10/18 03:39

・onCreateを消去しました。素人でそんな機能があるとは知らなかったので助かります。 ・一番上の質問を編集しました。そこにnextpage2Activityのコードをのせました。また、エラーコードもそれに対応するものに編集しました。何度もすみません。よろしくおねがいします。
jimbe

2019/10/18 08:00

ご提示のコード上で無名クラスの onClock 内で String.format を使っている所ですと, 44行目の > String str = String.format("%s%s%s%", figures[0], figures[1], figures[2]); になります. format 文字列 "%s%s%s%" は最後の '%' は要らないのではないでしょうか.
souja

2019/10/18 08:14

ご回答ありがとうございます。 ここの%は確かに不必要でした。凡ミスです。これを修正して実行してみたところまだエラーが消えません。よろしくお願いします。 以下がエラーコードです。 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.soja.page1, PID: 29689 java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 at com.example.soja.page1.nextpage2Activity$1.onClick(nextpage2Activity.java:44) at android.view.View.performClick(View.java:6294) at android.view.View$PerformClick.run(View.java:24770) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
jimbe

2019/10/18 08:21

エラー(この場合は正確には"例外"ですが)をお読みになっていらっしゃいますか. > java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 > at com.example.soja.page1.nextpage2Activity$1.onClick(nextpage2Activity.java:44) 44 行目で配列のアクセスに index=2 が使用されていますが, 配列の長さが 2 なので領域外にアクセスしようとしている... と言われています. > private String[] figures = new String[2]; figures は2要素しか用意していません.
souja

2019/10/18 08:31

あまり読んでいませんでした。すみません。配列の長さは修正をしました。
jimbe

2019/10/18 08:49 編集

いきなりアルファベットの羅列が大量に表示されるとビックリして混乱してしまったりするのは分かりますが, 何が起きたのかを調べるには最も大切な情報です. 見覚えのあるパッケージ名やクラス・メソッド名があれば, そこで問題が発生したことが分かりますし行番号まで出ています. 全ての行を理解する必要は全くありません. 最初のほうにある ~Exception と, 発生個所さえ分かればいいはずですので, ぜひ挑戦して頂ければと思います.
souja

2019/10/21 01:41

教えていただいてありがとうございます。ご指摘いただいた通り人任せにせずまずは自分で考えてからわからないところを投稿しようと思います。またご質問させていただくことがあると思いますのでよろしければまたご回答していただきたいです。
souja

2019/10/21 04:30

エラーを見直して修正したところNumberPickerが動きました!ありがとうございました!
jimbe

2019/10/21 15:43

おつかれさまでした.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問