为自定义 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(...)
我有一个 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(...)