私は、次のスイッチケースを使用してさまざまなボタンを処理し、それぞれの場合にアクティビティを開始します。同じスコープ内でインテント変数を再利用することは危険ですか?
私はインテントオブジェクト(i)を外側に移動する必要がありますか?プライベートクラス属性として再利用する必要がありますか?または、角かっこで各ケースをラップする必要があります。ユニークな名前を付けずに名前 "i"を再使用できますか?どちらが安全/より良いですか?同じオブジェクトを再利用するリスクはありますか?
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_numbers:
Intent i = new Intent(v.getContext(), DrillActivity.class);
i.putExtra("word_list", R.raw.wl_numbers);
startActivity(i);
break;
case R.id.button_colors:
Intent i2 = new Intent(v.getContext(), DrillActivity.class);
i2.putExtra("word_list", R.raw.wl_colors);
startActivity(i2);
break;
case R.id.button_daysmonths:
Intent i3 = new Intent(v.getContext(), DrillActivity.class);
i3.putExtra("word_list", R.raw.wl_daysmonths);
startActivity(i3);
break;
default:
break;
}
}
+1の2番目のコードです。それははるかにクリーン&それは私もそれをやる方法です。しかし、あなたの最初のものは動作しません。私はそれを試していないが、私はあなたが***宣言する必要があると思う、私は; *** switch文の前に。それ以外の場合は、2番目のケースが真であれば表示されません。 – OceanBlue
あなたはそうです。私は今それを修正するつもりです。ありがとう – IncrediApp
また、デフォルトのケースがヒットし、wordListValueがゼロの場合、2番目のコードでエラーが発生する可能性がありますので、最後の3行をif(wordListValue!= 0)にラップして、ファンキーなエラーを表示しないようにしてください。 – JPM