为自定义 ActionBar 按钮实现 OnClick 方法

Implementing an OnClick method for a custom ActionBar button

我有一个 Activity 与往常一样与布局相关联,使用:

setContentView(R.layout.layout_precode_checklist);

但是,这个 activity 使用自定义操作栏,它有自己的独立布局,使用:

getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getActionBar().setCustomView(R.layout.precode_checklist_actionbar);

layout.precode_checklist_actionbar 内部,我有一个带有名为 toMainMenu 的 onClick 方法的按钮元素。我的问题是,当我尝试在 Activity class 中实现该方法时,出现错误:

Could not find a method toMainMenu(View) in the activity class   android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button

实施:

public void toMainMenu(View view) {
    Intent intent = new Intent(this, MainMenu.class);
    startActivity(intent);
}

谁能给我指出正确的方向?

在 .xml 文件

中提供 android:onClick="clickEvent"
public void clickEvent(View v) {
    if (v.getId() == R.id.button1) {
        Toast.makeText(MainActivity.this, "you click on button1",
                Toast.LENGTH_SHORT).show();
    }

    if (v.getId() == R.id.button2) {
        Toast.makeText(MainActivity.this, "you click on button2",
                Toast.LENGTH_SHORT).show();
    }

}

我认为这是因为 android.view.ContextThemeWrapper 用于放大视图,而不是 activity。尝试

setCustomView(...);
getCustomView().findViewById(R.id.button).setOnclickListener(...)

我想你可以使用

getActionBar().getCustomView().findViewById(R.id.your_button_id).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
    Intent intent = new Intent(YourCurrentAcivity.this, MainMenu.class);
    startActivity(intent);
}});

你打电话后getActionBar().setCustomView(...)