(アプリの目標)
1、 「タイトル画面」からstartをタップ。
2、 「問題画面」へ画面遷移。 (例: dog → ①犬②アヒル③ワニ のボタンから選択し、タップ。)
3、 プレーヤーの回答が正解の場合:○、不正解の場合:×を表示する。 ←現時点でここまでできています
4、 数秒後、次の「問題画面」へ画面遷移。
5、 3,4の繰り返し。
6、 プレーヤーが全ての問題に回答し終わったら、結果を表示。
(躓いたところ)
SubActivity.javaのButton型の配列aのところでエラーが出ました。配列を使わずに、ただのaで宣言したところうまく動きます。
二重配列にした理由は、複数の問題を順番に出していきたいので、行番号で問題番号を表し、3つの選択肢を列番号で表そうと考えたからです。
エラーの内容はnullポインター・アクセス?と警告が出ているのですが調べてもよくわかりません。そもそも二重配列でできるのかどうかも不安です。
そこで、エラーの原因と対策、「こうすればもっと良くなる!」などのアドバイスを受け付けたいです。
初心者という立場に甘えたくはないのですがどうかお助けください(汗
MainActivity.java
package net.dixq.learning;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
Button b_start = (Button) findViewById(R.id.b_start);
b_start.setOnClickListener(this);
}
@Override
public void onClick(View v){
// TODO 自動生成されたメソッド・スタブ
Intent intent = new Intent();
intent.setClassName("net.dixq.learning","net.dixq.learning.SubActivity");
startActivity(intent);
}
}
package net.dixq.learning;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class SubActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button[][] a = null ;
a[0][1] = (Button) findViewById(R.id.a1);
a[0][2] = (Button) findViewById(R.id.a2);
a[0][3]= (Button) findViewById(R.id.a3);
a[0][1].setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//TODO 自動生成されたメソッド・スタブ
clickR();
}
});
a[0][2].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
clickF();
}
});
a[0][3].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
clickF();
}
});
}
public void clickR(){
ImageView image = (ImageView)findViewById(R.id.imageView1);
image.setImageResource(R.drawable.maru);
}
public void clickF(){
ImageView image = (ImageView)findViewById(R.id.imageView1);
image.setImageResource(R.drawable.batu);
}
}