我正在使用以下开关盒来处理不同的按钮,并在每种情况下启动一项活动。在相同范围内重复使用意图变量是否危险?
我想知道 - 我应该将Intent对象(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代表第二个代码。它更清洁,我也是这么做的。但是,你的第一个不会工作。我没有尝试过,但我认为你需要在switch语句之前声明*** Intent i; ***。否则,如果第二种情况为真,它甚至不可见。 – OceanBlue
你说得对。我现在要修复它。谢谢 – IncrediApp
第二个代码可能会错误,如果默认情况下击中和wordListValue为零,可能想包装最后3行if(wordListValue!= 0),所以你不会得到一些时髦的错误。 – JPM