我有一个与平常相关的活动,使用:
setContentView(R.layout.layout_precode_checklist);
但是,此活动使用自定义操作栏,该操作栏具有独立的布局,使用:
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getActionBar().setCustomView(R.layout.precode_checklist_actionbar);
在layout.precode_checklist_actionbar
内部,我有一个带有onClick方法的按钮元素toMainMenu
。我的问题是,当我尝试在Activity类中实现该方法时,我收到错误:
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);
}
有人能指出我正确的方向吗?
答案 0 :(得分:1)
我认为这是因为android.view.ContextThemeWrapper
用于充气视图,而非活动。试试
setCustomView(...);
getCustomView().findViewById(R.id.button).setOnclickListener(...)
答案 1 :(得分:1)
我想你可以使用
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(...)
答案 2 :(得分:0)
在.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();
}
}