【发布时间】:2015-01-03 22:08:27
【问题描述】:
单击与 onclick 事件关联的项目,应用程序意外关闭并显示错误。非常奇怪的是,这只发生在 ActionBar 中的项目上,但相同的代码在 Activity 布局中的项目上正常工作。
班级:
public class myclass extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myclass);
getSupportActionBar().setCustomView(R.layout.actionbar_myclass);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
}
public void myonlickevent(View v) {
System.out.println("test");
}
}
R.layout.actionbar_myclass(点是我的代码,没用的原因我稍后会解释):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:onClick="myonlickevent" >
...
</RelativeLayout>
Logcat 错误:
java.lang.IllegalStateException: Could not find a method myonlickevent(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.RelativeLayout with id 'myrelativelayoutid'.
当我将compileSdkVersion 和所有依赖项更新到最新版本时,就会出现问题,事实上在此之前我的代码可以工作。如何解决?
【问题讨论】:
-
删除
android:onClick并将onClickListener添加到布局中。 -
@akash93 我会试试的,谢谢,但为什么现在我需要这样做?
-
首先你在布局中声明了一个 onClick 但你没有声明一个监听器......这就是为什么。
标签: java android android-layout android-actionbar