私は Android が初めてで、Intent を使用してある .java クラスから別のクラスに整数値を渡そうとしています。整数は最初の .java ファイル内で宣言され、スコアを生成するために IF ステートメント内で使用されます。
public class Diabetes_Question_1 extends Activity {
public int Total = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.diabetes_question_1);
Button btnBack = (Button) findViewById(R.id.btnBack1);
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Diabetes_Question_1.this, Diabetes_Question_2.class));
}
});
final RadioButton rb1 = (RadioButton) findViewById(R.id.btnDQ1Radio1);
final RadioButton rb2 = (RadioButton) findViewById(R.id.btnDQ1Radio2);
final RadioButton rb3 = (RadioButton) findViewById(R.id.btnDQ1Radio3);
Button btnNext = (Button) findViewById(R.id.btnNext1);
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(rb1.isChecked()==true) {
Total = 1;
} else if (rb2.isChecked()==true) {
Total = 2;
} else if (rb3.isChecked()==true) {
Total = 3;
} else {
Total = 4;
}
Toast.makeText(Diabetes_Question_1.this, String.valueOf(Total), Toast.LENGTH_SHORT).show();
Intent i = new Intent(Diabetes_Question_1.this, Diabetes_Question_3.class);
i.putExtra("totalScore", Total);
startActivity(i);
}
});
}
}
このスコアが生成されたら、それを別の .java クラスに渡し、次の IF ステートメントに基づいてスコアを追加できるようにします。
public class Diabetes_Question_3 extends Activity {
Bundle extras = getIntent().getExtras();
int Total3 = extras.getInt("totalScore");
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.diabetes_question_3);
Button btnBack = (Button) findViewById(R.id.btnBack2);
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Diabetes_Question_3.this, Diabetes_Question_1.class));
}
});
final RadioButton rb1 = (RadioButton) findViewById(R.id.btnDQ3Radio1);
final RadioButton rb2 = (RadioButton) findViewById(R.id.btnDQ3Radio2);
final RadioButton rb3 = (RadioButton) findViewById(R.id.btnDQ3Radio3);
Button btnNext = (Button) findViewById(R.id.btnNext3);
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Diabetes_Question_3.this, Diabetes_Question_4.class));
if(rb1.isChecked()==true) {
Total3 = + 1;
} else if (rb2.isChecked()==true) {
Total3 = + 1;
} else if (rb3.isChecked()==true) {
Total3 = + 1;
} else {
Total3 = + 1;
}
Toast.makeText(Diabetes_Question_3.this, String.valueOf(Total3), Toast.LENGTH_SHORT).show();
}
});
}
}
これを示すトーストがあるので、IF ステートメントが機能することはわかっています。ただし、次の .java クラスに移行することが問題であり、コードの改善に苦労しています。
次のエラー メッセージが表示されます。
致命的な例外: Main java.lang.RuntimeException: アクティビティ ComponentInfo {パッケージ名} java.lang.NullPointerExcpetion をインスタンス化できません
どんな助けでも大歓迎です。