Android 扩展布局中未调用onClick

Android 扩展布局中未调用onClick,android,Android,为什么onClickListener在我的扩展线性布局中没有被调用?当我在活动的布局中包括设置_1时,onClick不会触发 以下是复合控件的布局: setting.xml <?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pare

为什么onClickListener在我的扩展
线性布局中没有被调用?当我在活动的布局中包括
设置_1
时,onClick不会触发

以下是复合控件的布局:

setting.xml

<?xml version="1.0" encoding="utf-8" ?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp" />

</LinearLayout>
下面是实现上述抽象类的类

设置_1.java

public class setting_1 extends IntegerSettingLayout{

    public Setting_WeekFrequency(Context context, AttributeSet attrs) {
        super(context, attrs);
        ...

    }

    @Override
    String getStatus() {
        if(BuildConfig.DEBUG) {Log.d(LOG_TAG,"getStatus");}
    }

} 

添加
此。可设置可点击(true)添加到构造函数。

添加
此。可设置单击(true)到您的构造函数。

您实际上还没有注册您的
OnClickListener
。为此,您需要调用
setOnClickListener()
,或者在XML中使用
android:onClick
属性。

您实际上还没有注册
OnClickListener
。为此,您需要调用
setOnClickListener()
,或者在XML中使用
android:onClick
属性。

onClick
是一个侦听器,您必须触发它才能工作,您可以通过从XML调用带有
onClick=“/code>的方法,或者通过引用活动的
onClick()
方法中的视图id来实现。或者,如果您想在不单击任何视图的情况下触发它,只需调用
getActivity.setClickable(true)到你的构造函数。@hrskrs我做的
实现了OnClickListener
。所以
onClick
应该可以工作吗?是的,但是因为你实现了,你必须触发
yourView.setOnClickListener(这个)
onClick()
方法您可以使用
开关{case:R.id.yourViewId}
onClick
是一个监听器,您必须触发它才能工作,您可以通过从Xml调用带有
onClick=”“
的方法,或者通过引用活动的
onClick()
方法中的视图id来实现。或者,如果您想在不单击任何视图的情况下触发它,只需调用
getActivity.setClickable(true)到你的构造函数。@hrskrs我做的
实现了OnClickListener
。所以
onClick
应该可以工作吗?是的,但是因为你实现了,你必须触发
yourView.setOnClickListener(这个)
onClick()
方法您可以使用
开关{case:R.id.yourViewId}
在扩展布局类时使用
implements OnClickListener
难道还不够吗?谢谢。我必须执行
setOnClickListener(this)
。在扩展布局类时使用
implements OnClickListener
难道还不够吗?谢谢你说得对。我必须做
setOnClickListener(这个)
。这没什么区别
public class setting_1 extends IntegerSettingLayout{

    public Setting_WeekFrequency(Context context, AttributeSet attrs) {
        super(context, attrs);
        ...

    }

    @Override
    String getStatus() {
        if(BuildConfig.DEBUG) {Log.d(LOG_TAG,"getStatus");}
    }

}