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

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

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

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Android Studio

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

Q&A

1回答

2260閲覧

Android studio setOnClickListenerもしくはfindViewByIdでNullPointerExceptionの発生

KOOC

総合スコア11

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Android Studio

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

0グッド

0クリップ

投稿2016/12/16 10:24

現在クイズアプリを作成しているのですが、NullPointerExceptionが発生して先に進みません。

QuestionActivity.java

1コード 2```package com.example.mikawa.myapplication; 3import android.content.Intent; 4import android.database.Cursor; 5import android.database.sqlite.SQLiteDatabase; 6import android.support.v7.app.AppCompatActivity; 7import android.os.Bundle; 8import android.view.View; 9import android.view.Window; 10import android.widget.Button; 11import android.widget.RadioButton; 12import android.widget.TextView; 13 14/** 15 * Created by mikawa on 2016/11/18. 16 */ 17 18 19 20public class QuestionActivity extends AppCompatActivity implements View.OnClickListener { 21 22 23 String Seikai; 24 String QuestionNO; 25 Button Button4; 26 int[] getrandom; 27 int count = 0; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 //タイトルバーを非表示にする 33 requestWindowFeature(Window.FEATURE_NO_TITLE); 34 //レイアウトをセットする 35 setContentView(R.layout.page2_change); 36 37 Button4 = (Button) findViewById(R.id.button4); 38 Button4.setOnClickListener(this); 39 40 41 //SubActivityから送られてきたデータを取得 42 Intent intent = getIntent(); 43 getrandom = intent.getIntArrayExtra("QuestionNo"); 44 45 //データを取得する(データがない場合、第2引数の0が返る) 46 count = intent.getIntExtra("QuestionCo",0); 47 48 49 QuestionNO = String.valueOf(getrandom[count - 1]); 50 51 52 53 } 54 55 @Override 56 protected void onResume() { 57 super.onResume(); 58 59 //画面↑にあるテキストを「問題 + 問題No」で表示 60 TextView tv =(TextView)findViewById(R.id.textNo); 61 tv.setText("問題" + String.valueOf(count)); 62 63 //ボタン処理呼び出し 64 setQuestion(); 65 } 66 67 //ボタンをクリア済みかどうかで色分け&クリック不可処理 68 private void setQuestion() { 69 //作成したDBOpenHelperクラスに読み取り専用でアクセス 70 DBOpenHelper dbOpenHelper = new DBOpenHelper(this); 71 SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); 72 73 74 /* 75 SELECT文 76 テーブル名 MyTableからClearの項目を検索してくる条件式 77 */ 78 String sql = "SELECT Pref,Q0,Q1,Q2,Q3 FROM MyTable WHERE _id= " + QuestionNO; 79 80 //上記のSELECT文を実行してカーソルを取得 81 Cursor c = db.rawQuery(sql, null); 82 c.moveToFirst(); 83 84 //データベースから取ってきたデータを変数にセット 85 String teniss = c.getString(c.getColumnIndex("Pref"));//問題文となる都道府県 86 String choice1 = c.getString(c.getColumnIndex("Q0"));//三択の選択肢1 87 String choice2 = c.getString(c.getColumnIndex("Q1"));//三択の選択肢2 88 String choice3 = c.getString(c.getColumnIndex("Q2"));//三択の選択肢3 89 90 Seikai = c.getString(c.getColumnIndex("Q3"));//答え 91 92 //データベースのクローズ処理 93 c.close(); 94 db.close(); 95 96 TextView tv =(TextView) findViewById(R.id.textQuestion); 97 tv.setText(teniss);//問題文をテキストに表示 98 RadioButton rb = (RadioButton) findViewById(R.id.RadioButton1); 99 rb.setText(choice1);//三択の選択肢1をボタンに表示 100 RadioButton rb2 =(RadioButton) findViewById(R.id.RadioButton2); 101 rb2.setText(choice2);//三択の選択肢2をボタンに表示 102 RadioButton rb3 =(RadioButton) findViewById(R.id.RadioButton3); 103 rb3.setText(choice3);//三択の選択肢3をボタンに表示 104 105 } 106 107 //選択肢がクリックされた時の処理 108 public void onClick(View v){ 109 if(v==Button4) { 110 //遷移先のActivityを指定 111 //Intent Intent = new Intent(このクラスから、このクラスへ) 112 Intent intent = new Intent(QuestionActivity.this, QuestionActivity.class); 113 count++; 114 intent.putExtra("QuestionCo",count); 115 116 117 //遷移開始 118 startActivity(intent); 119 } 120 121 } 122} 123 124```page2_change.xml 125コード 126```<?xml version="1.0" encoding="utf-8"?> 127 128<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 129 130 android:orientation="vertical" 131 android:layout_width="match_parent" 132 android:layout_height="match_parent" 133 android:gravity="left" 134 android:id="@+id/page2_change"> 135 136 137 <TextView 138 android:layout_width="match_parent" 139 android:layout_height="25dp" 140 android:textAppearance="?android:attr/textAppearanceMedium" 141 android:id="@+id/textNo" 142 android:bufferType="editable" 143 android:layout_gravity="center_horizontal" 144 android:layout_weight="0.34" 145 android:background="#58BE89" 146 android:textColor="#FFFFFF" 147 android:textSize="26dp" /> 148 149 <TextView 150 android:layout_width="match_parent" 151 android:layout_height="wrap_content" 152 android:textAppearance="?android:attr/textAppearanceMedium" 153 android:text="Medium Text" 154 android:id="@+id/textQuestion" 155 android:layout_weight="1" 156 android:gravity="center_vertical|center_horizontal" 157 android:textSize="46dp" /> 158 159 160 <RadioGroup android:layout_height="wrap_content" 161 android:layout_width="wrap_content" 162 android:id="@+id/RadioGroup"> 163 <RadioButton android:text="1" 164 android:id="@+id/RadioButton1" 165 android:layout_height="wrap_content" 166 android:layout_width="wrap_content"> 167 </RadioButton> 168 <RadioButton android:text="2" 169 android:id="@+id/RadioButton2" 170 android:layout_width="wrap_content" 171 android:layout_height="wrap_content"> 172 </RadioButton> 173 <RadioButton android:text="3" 174 android:id="@+id/RadioButton3" 175 android:layout_width="wrap_content" 176 android:layout_height="wrap_content"> 177 </RadioButton> 178 </RadioGroup> 179 180 <Button 181 android:layout_width="wrap_content" 182 android:layout_height="wrap_content" 183 android:text="次の問題へ" 184 android:bufferType="normal" 185 android:id="@+id/button4" 186 android:layout_gravity="right" 187 android:layout_marginTop="88dp"> 188 189 </Button> 190 191 192 193</LinearLayout> 194 195アプリを実行するとpage2_change.xmlのレイアウトが表示され、1問目は表示されるのですが,"次の問題へ"(Button4)をクリックすると、エラーが起きアプリが強制終了されます。 196 197logcatを見ると、java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mikawa.myapplication/com.example.mikawa.myapplication.QuestionActivity}: java.lang.NullPointerException 198と表示されています。 199 200QuestionActivity.javaでButton4.setOnClickListener(this);とtv.setText("問題" + String.valueOf(count));にカーソルを合わせると、may produce 'java.lang.NullPointerException'と言われます。

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

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

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

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

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

yona

2016/12/16 11:59

コードの記述方法が間違っているようなので修正してください。
guest

回答1

0

IntentにQuestionNoが含まれていないからじゃないでしょうか。

また、エラーがでたならエラーログを質問に追記してください。

投稿2016/12/16 12:13

yona

総合スコア18155

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問