【发布时间】:2017-06-23 07:11:45
【问题描述】:
我创建自定义视图并在一些 xml 活动中使用它,然后设置android:onClick="buttonOnClick"。我将buttonOnClick 定义为public 并将其写入其活动并设置tools:context。
Activity.java
public void buttonOnClick(View view) {
validate(view);
}
layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
...
tools:context="com.test.myapp.Activity">
<com.test.myapp.GifImageViewComp
....
android:onClick="buttonOnClick" />
它在Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP 上工作,但在其他操作系统版本中,自定义视图 xml onclick 属性尝试从视图类而不是活动中查找处理程序。
我不想在每个视图上使用 onClick 或 setOnClickListener 的实现,我想在活动布局中使用 onClick
【问题讨论】:
-
改为在类中使用 onClickListener,并使用您的 customView 的 id,调用 onClick()
-
你设置了
android:clickable="true"??? .对于良好的做法使用 onClickListener -
是的,设置
android:clickable="true" -
@MohammadJavad 仅供参考,
android:onClick在片段中不起作用 -
@IntelliJAmiya,我不使用 Fragment ,但它在 android 5 或更高版本中工作
标签: java android android-layout android-view android-custom-view