我只想设置一次setOnItemClickListener

时间:2012-11-07 15:59:27

标签: android include

我使用“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

感谢您的帮助

3 个答案:

答案 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,然后使用其余活动扩展基类。