3

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

每次我的活动使用“脚”时,我都会在图像“setOnItemClickListener”上设置

我只想设置一次 setOnItemClickListener

谢谢您的帮助

4

3 回答 3

3

如果存在具有适当 ID 的图像视图,则使您的所有活动都从将设置侦听器的基活动类继承:

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() {
      // ...
    };
}
于 2012-11-07T16:05:19.983 回答
2

您必须编写带有setOnItemClickListener实现的单独类,然后扩展它。

于 2012-11-07T16:07:48.490 回答
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 的基类,然后使用其余活动扩展您的基类。

于 2012-11-07T16:08:44.607 回答