我想用我的测试应用程序onOptionsItemSeleceted方法(),但我知道,如果我使用意图使用库活动。 Android使用库活动的onOptionsItemSeleceted方法()不是我的测试活动方法()。我做了一个测试程序,我的MainActivity这样的:onOptionsItemSelected不会被调用的活动意图另一个活动类
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent (this, Test_1.class);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_setting:
Toast.makeText(getApplicationContext(),
"Button is clicked", Toast.LENGTH_LONG).show();
return true;
case R.id.action_setting1:
Toast.makeText(getApplicationContext(),
"Button is clicked", Toast.LENGTH_LONG).show();
return true;
case R.id.action_settings:
Toast.makeText(getApplicationContext(),
"Button is clicked", Toast.LENGTH_LONG).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
而且我的测试活动课是这样的:
public class Test_1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_1);
TextView txt = (TextView)findViewById(R.id.textView);
txt.setText("This is new page");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.test_1, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return false;
}
return super.onOptionsItemSelected(item);
}
我想使用的主要活动类onOptionsItemSelected()方法,但我做不到在屏幕上看到我的Toast消息。 我真的很感激,如果你能帮助我。谢谢:)
尝试扩展Test_1中的MainActivity –
@ A.S。我已经试过那个。在那种情况下,意图不起作用。 –
我假设main中的菜单是test_1中菜单的一个子集,在这种情况下,您可以将它作为Test_1的子类。我猜你可以在Test_1中扩展MainActivity,并在switch case中调用super.onOptionsItemSelected.Did你在清单中注册Test_1? – vamsiampolu