アクティビティで ActionBarSherlock を使用して onMenuItemSelected でインテント/トーストを作成しようとしています。しかし、私はすでに例のようなコードをウェブに挿入していますが、応答しませんでした。間違ったコードの場所を教えてください???
これは私のコードです
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu sub = menu.addSubMenu("more");
MenuItem ShareButton = sub.getItem();
ShareButton.setIcon(R.drawable.more);
ShareButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_home, sub);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_item_account:
Toast.makeText(myContext, "You Choosed Account",Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_item_setting:
Toast.makeText(myContext, "You Choosed Setting", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_item_exit:
Toast.makeText(myContext, "You Choosed Exit", Toast.LENGTH_SHORT).show();
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
ソリューション
これは私の新しいコードです。OnOptionMenuSelected メソッドを削除して、 onMenuItemSelected を使用するだけです。
@Override public boolean onMenuItemSelected(int featureId, MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
finish();
break;
case R.id.menu_item_account:
Toast.makeText(myContext, "Anda memilih Account",
Toast.LENGTH_SHORT).show();
setContentView(R.layout.account_contoh_layout);
return true;
case R.id.menu_item_setting:
Toast.makeText(myContext, "Anda memilih Setting",
Toast.LENGTH_SHORT).show();
setContentView(R.layout.settings_contoh_layout);
return true;
}
return true;
}
@Override public boolean onCreateOptionsMenu(メニュー メニュー) {
// Used to put dark icons on light action bar
SubMenu sub = menu.addSubMenu("");
MenuItem ShareButton = sub.getItem();
ShareButton.setIcon(R.drawable.ic_more);
ShareButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS
| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_home, sub);
return true;
}