🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android

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

Android Studio

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

Q&A

解決済

1回答

1830閲覧

Android StudioでNumberPickerで数値を入力してボタンを押して表示した後に画面遷移をしたいです。

souja

総合スコア13

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/10/07 07:15

前提・実現したいこと

Android studioを始めたばかりです。
健康アプリのようなものをつくろうとしています。
NumberPickerで3桁の数字を選択してOKボタンを押せばそれが表示されて、NEXTボタンをおして次の画面へいくという動きを実現したいと考えています。

発生している問題・エラーメッセージ

ビルドはできるのですが、アプリが繰り返し停止していますと表示されてしまいます。
またNumberPickerが全く動かない状態です。

エラーメッセージ

該当のソースコード

nextpage1sample.java

ソースコード package com.example.srkm.page1; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.NumberPicker; import android.widget.TextView; public class nextpage1sample extends AppCompatActivity { private NumberPicker numPicker0, numPicker1, numPicker2; private TextView pickerTextView1; private String[] figures1 = new String[2]; private void OnCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pickerTextView1 = findViewById(R.id.high); numPicker0 = findViewById(R.id.numPicker0); numPicker1 = findViewById(R.id.numPicker1); numPicker2 = findViewById(R.id.numPicker2); Button pickerButton1 = findViewById(R.id.button1); pickerButton1.requestFocus(); numPicker0.setMaxValue(9); numPicker0.setMinValue(0); numPicker1.setMaxValue(9); numPicker1.setMinValue(0); numPicker2.setMaxValue(9); numPicker2.setMinValue(0); pickerButton1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { figures1[0] = String.valueOf(numPicker0.getValue()); figures1[1] = String.valueOf(numPicker1.getValue()); figures1[2] = String.valueOf(numPicker2.getValue()); String str = String.format("%s%s%s%", figures1[0], figures1[1], figures1[2]); Float fig = Float.parseFloat(str); pickerTextView1.setText(String.valueOf(fig)); } }); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setContentView(R.layout.activity_nextpage1sample); Button button2 = findViewById(R.id.button2); findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent(getApplication(), nextpage2Activity.class); startActivity(intent); } }); } }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

java, android studio3.4

ここにより詳細な情報を記載してください。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/10/07 09:12

LogCatに出るエラーを書いてください
souja

2019/10/07 09:24

すいません。これがエラーです。 上のコードの前の画面としてタイトル画面があってそこのスタートボタンを押したら上のコードの画面に移るようにしています。これまではスタートボタンを押したら上のコードの画面にいけていたのですが、今度は急にスタートボタンを押した時点でアプリが繰り返し停止していますと表示されました。 2019-10-07 18:20:48.897 29454-29454/com.example.srkmmtky1260.page1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.srkmmtky1260.page1, PID: 29454 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.srkmmtky1260.page1/com.example.srkmmtky1260.page1.nextpage1sample}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) 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) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.srkmmtky1260.page1.nextpage1sample.onCreate(nextpage1sample.java:88) at android.app.Activity.performCreate(Activity.java:7009) at android.app.Activity.performCreate(Activity.java:7000) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)  at android.os.Handler.dispatchMessage(Handler.java:106)  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)
退会済みユーザー

退会済みユーザー

2019/10/07 12:17

てかこのソース、大半が実行されないですね・・・ > private void OnCreate(Bundle savedInstanceState) { こことか、 > setContentView(R.layout.activity_main); > > setContentView(R.layout.activity_nextpage1sample); ここは意図して書いてますか?
souja

2019/10/08 00:13

そうなんですか、、、はじめたばかりで全くわかってない状況で、、、 このコードは自分でわからなくなってネットにあったコードを参考にしてかいたものです。ご指摘いただいた3行もそこに書いてあったので書かなければいけないものかと思って書いたといった感じです。 どう修正すればいいのでしょうか?
guest

回答1

0

ベストアンサー

まず最低限エラーをなくすようにするには。

Java

1 setContentView(R.layout.activity_main); 2 3 setContentView(R.layout.activity_nextpage1sample);

このActivityに割り当てたいのは上のレイアウトだと思いますので、使わない方を消してください。
ここで正しい方を選べばエラーが消えるはずです。
そもそもエラーが起きているのは、

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.srkmmtky1260.page1.nextpage1sample.onCreate(nextpage1sample.java:88)

エラーに原因と何行目かが書いてありますが、findViewById(R.id.button2)がnullです。
おそらく、R.layout.activity_nextpage1sampleにはbutton2がないのでしょう。

最低限エラーはこれで起きなくなると思いますが、あと気になったのでツッコミどころをいくつか。

Java

1 private void OnCreate(Bundle savedInstanceState) {

これではAndroidは勝手に呼んでくれません。

Java

1 @Override 2 protected void onCreate(Bundle savedInstanceState) {

の方は呼んでくれますが。2つに分けたのは何故でしょう・・・

Java

1 Button button2 = findViewById(R.id.button2); 2 findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {

button2にfindViewById(R.id.button2)を突っ込んでるのにまた呼んでいるのは何故なんでしょう・・・

何だかありものでとりあえず作ろう的な感じが見えるので、一旦基礎を固めてから取りかかれた方がよろしいかと思います。
入門サイトなり書籍なりありますから、質問者さんが先に見るのはそちらの方です。

投稿2019/10/08 10:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

souja

2019/10/09 06:34

ご指摘いただいた通りにしたら直りました。ありがとうございました。 自分でも基礎をしないとということをうすうす感じてはいました。まずはそこから勉強しようと思います。
souja

2019/10/10 05:25

もう一つお聞きしたいことがあるのですが、NumberPickerのドラムロールの数字が表示されない原因がわかりません。ログを見る限りではエラーもないのでよくわかりません。よろしければお答えいただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問