-1

Activity の子孫でリストビュー レイアウトを使用しています。アダプタの getView 実装は次のとおりです。longclickable です。

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        TextView tv = new TextView(CustomTitleActivity.this);
        tv.setText(title[position]);
        return tv;
    }
    return convertView;
}

しかし、次のようにレイアウトファイルからアイテムのビューを膨らませようとしたとき:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/local_songs_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="false"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_weight="1"
        android:focusable="false"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:id="@+id/title"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:focusable="false"
            android:text="TITLE"
            android:textAppearance="?android:textAppearanceSearchResultTitle"
            />
        <TextView
            android:id="@+id/artist"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Unknow"
            android:focusable="false"
            android:textAppearance="?android:textAppearanceSearchResultSubtitle"
            />      
    </LinearLayout>

    <LinearLayout
        android:layout_weight="3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
            android:focusable="false"
        android:orientation="horizontal">
        <ImageButton 
        android:id="@+id/favorite"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_favourite"
            android:background="#0000"
            android:focusable="false"
            android:onClick="onToggleStar"/>

        <CheckBox 
        android:id="@+id/select"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="visible"
            android:focusable="false"/>
    </LinearLayout>
</LinearLayout>

それらをクリック/ロングクリックできませんでした。すでに android:focusable 属性を false に設定しようとしました。誰かが私にヒントを与えることができますか?

4

1 に答える 1

1

自分で答えてください。ImageButton のコンストラクターでは、setFocusable(true) が再度呼び出されるため、本当にフォーカスする必要がない場合は、ImageButton の構築後に setFocusable(false) を呼び出しても問題ありません。その後、問題は解決しました。

于 2012-10-25T01:49:44.153 に答える