我在android中有一个自定义控件,它有一个文本视图,一些图像等。
我想让整个控件可以点击。
我用:
宣布了布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:clickable="true" android:layout_width="fill_parent" android:layout_height="50px" android:layout_gravity="center_vertical">
即使它将android:clickable属性设置为true,也不会触发click事件。
我做错了什么?答案 0 :(得分:3)
在您的主要活动代码中,执行类似这样的操作
public class TestActivity extends Activity implements
OnTouchListener, OnLongClickListener, OnKeyListener,
OnClickListener, OnFocusChangeListener{
CustomUI = (CustomView) findViewById(R.id.custom_ui);
CustomUI.addListener(this);
CustomUI.setOnClickListener(this);
CustomUI.setOnFocusChangeListener(this);
CustomUI.setOnLongClickListener(this);
CustomUI.setOnTouchListener(this);
CustomUI.setOnKeyListener(this);
}
此外,你不能把属性放在你的相对布局中,你必须包括你的自定义这个布局...像
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<com.company.some.CustomView
android:id="@+id/custom_ui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
/>
</RelativeLayout>