我有一个带有各种选择的android上下文菜单,根据用户选择我想要启动一个意图。 intent为所有按钮启动相同的活动,但根据选择将包含不同的String变量。我目前正在为我的点击监听器使用一个开关,案例方法,但在尝试消除代码重复时继续遇到“重复的局部变量”问题!如果有人能提供一些甚至更好的伪代码!
答案 0 :(得分:1)
很难说没有看到一些代码,但“重复局部变量”和“切换案例”让我觉得你在其中一个案例中声明了一个变量,其名称与另一个案例中的变量同名。 / p>
同一个开关的不同情况下的代码都在相同的范围内,除非你用括号包围一个案例中的代码,如下所示:
switch(VALUE) {
case A: {
String string = "";
}
case B: {
//Same variable name, possible since it's in a different scope now.
String string = "";
}
}
因此,要么使用括号,要么只是确保在整个案例中使用不同的变量名称。
答案 1 :(得分:1)
您可以使用intent.putExtra(String name,String value)并将其推送到其他活动。
伪代码:
Button1.value =“X”;
Button2.value =“Y”;onClickListner(查看v){
Intent intent = new Intent();
intent.putExtra( “ButtonValue” v.value());
//额外的代码在这里...
}
希望这就是你要找的......
VINAY
答案 2 :(得分:0)
我喜欢使用set / getTag(Object),因为你可以将任何你喜欢的类型放入其中(只要你小心再把它拿出来):
button1.setTag(MyClass.STATIC_INT_1);
button2.setTag(MyClass.STATIC_INT_2);
button1.setOnClickListener(Click);
button2.setOnClickListener(Click);
private OnClickListener Click(View v) {
Intent intent = new Intent() ;
intent.putExtra("Value", Integer.parseInt(v.getTag().toString()) ) ;
···
}