我想用我的測試應用程序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