Android菜单项
当从菜单中选择一个选项时,我正在尝试加载一个活动:Android菜单项,android,Android,当从菜单中选择一个选项时,我正在尝试加载一个活动: @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_flash: Intent intent = new Intent(this, FlashActivity.class); this.startAc
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_flash:
Intent intent = new Intent(this, FlashActivity.class);
this.startActivity(intent);
break;
case R.id.menu_color:
Intent intent = new Intent(this, FlashActivity.class);
this.startActivity(intent);
break; break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
但它总是给我错误的意图
Intent intent = new Intent(youractivity.this, FlashActivity.class);
startActivity(intent);
更改为上述代码 确保FlashActivity在清单文件中声明。然后重试此操作
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_flash:
openFlashmenu();
return true;
case R.id.menu_color:
openFlashmenu();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void openFlashmenu(){
Intent intent = new Intent(this, FlashActivity.class);
this.startActivity(intent);
}
对此进行更改:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
Intent intent = new Intent(this, FlashActivity.class);
this.startActivity(intent);;
return true;
case R.id.item2:
Intent intent = new Intent(this, FlashActivity.class);
this.startActivity(intent);
return true;
default:
return super.onContextItemSelected(item);
}
}
您是否在清单文件中声明了FlashActivity 如果没有,请将其添加到您的清单中:
<activity
android:name=".FlashActivity" >
</activity>
您是否在清单中声明了FlashActivity
?为什么您有两个菜单项做相同的事情?我只是犯了一个错误,每个菜单项都会导致不同的活动错误是这个重复的局部变量意图,我不知道为什么要使用您的activity。如果他可以直接获取contex,那么他没有使用匿名内部类为什么要这样做如果可以直接获取上下文,则使用getApplicationContext(),因为他没有使用匿名内部class@ShakeebAyaz getApplicationContext()获取调用的基本活动我随时准备更正我自己..你所做的是正确的,但我要说的是,如果你不在匿名的内部类中,那么你可以通过直接说this
来获取上下文,无需调用其他函数来获取context@ShakeebAyaz我以为他的申请书有广泛的类别。为此建议的getApplicationContext()。它给了我重复的局部变量意图。我不认为问题在于他没有结束调用方活动。在调用者活动中不调用finish()是有效的。是……我知道……我的意思不是说问题会因为finish()而得到解决。
<activity
android:name=".FlashActivity" >
</activity>