我使用“include”XML。我不想设置每个“活动”setOnItemClickListener。
我的“包含”XML food.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/foot"
android:layout_width="fill_parent"
android:layout_height="36dp"
android:layout_alignParentBottom="true"
android:background="#292929"
android:gravity="right|center_vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:src="@drawable/categories" />
</LinearLayout>
我把他放在哪里
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#595858"
android:gravity="top" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/foot">
<include
android:layout_alignParentBottom="true"
layout="@layout/foot" />
</RelativeLayout>
每当我的活动使用“foot”时,我在我的图片上设置“setOnItemClickListener”
我只想设置一次setOnItemClickListener
感谢您的帮助
答案 0 :(得分:3)
如果存在具有适当ID的imageview,则使所有活动继承自将设置侦听器的基本活动类:
public class MyBaseActivity extends Activity {
public onStart() {
super.onStart();
ImageView clickableImageView = (ImageView) findViewById(R.id.imageView3);
if (clickableImageView!=null) clickableImageView .setOnClickListener(myClickListener);
}
private OnClickListener myClickListener = new OnClickListener() {
// ...
};
}
答案 1 :(得分:2)
您必须使用setOnItemClickListener
实现对单独的类进行编码,然后再扩展它。
答案 2 :(得分:0)
您可以在xml中指定onclick函数,如下所示:
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:src="@drawable/categories"
android:onClick="callThisOnClick" />
然后在您的活动中
public void callThisOnClick(View v){
// put your onClick code here.
}
你必须记住android只会查看callThisOnclick的当前活动,所以你必须将它包含在每个使用食物的活动中。
您可以使用扩展活动的基类并使用callThisOnClick,然后使用其余活动扩展基类。