3

「インクルード」XMLを使用します。各「アクティビティ」setOnItemClickListenerを設定したくありません。

私の「インクルード」XMLfood.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の現在のアクティビティのみを調べるため、食べ物を使用するすべてのアクティビティにAndroidを含める必要があることを覚えておく必要があります。

アクティビティを拡張し、callThisOnClickを持つ基本クラスを使用して、残りのアクティビティで基本クラスを拡張できます。

于 2012-11-07T16:08:44.607 に答える