好吧,您可以将 MenuItem 保存为字段,然后调用 onOptionsItemSelected(savedMenuItem)。但是由于 ActionBar 项目是 MenuItems 而不是 Buttons(当然,如果您的操作栏未使用http://www.vogella.com/articles/AndroidActionBar/article.html#actionbar_dynamic之类的视图进行自定义)。但是,如果您的 ActionBar 是使用视图自定义的,并且该视图有一个 Button,则可以根据您的代码片段中的考虑来自定义该 Button 的行为。例子:
public class MainActivity extends Activity {
MenuItem item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getActionBar();
actionBar.setSubtitle("mytest");
actionBar.setTitle("TESTESTEST");
TextView tView = (TextView) findViewById(R.id.textView1);
tView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_settings) {
this.item = item;
Toast.makeText(this, "settings", Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
}