【问题标题】:Android - Onclick event on ActionBar with Custom ViewAndroid - 带有自定义视图的 ActionBar 上的 Onclick 事件
【发布时间】: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


【解决方案1】:

android:onClick 在当前活动中查找函数。有关详细说明,请参阅this SO question。而@KostasMatrix 这不是真的..

【讨论】:

    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2012-12-17
    • 2019-09-11
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多