为什么我的ListView不能长时间点击?

时间:2012-08-31 01:49:27

标签: android listview android-listview

我在Activity的后代使用listview布局,Adapter的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。 有人能给我一个暗示吗?

1 个答案:

答案 0 :(得分:1)

自己回答。 因为在ImageButton的构造函数中,它会再次调用setFocusable(true),所以如果你真的不需要聚焦,可以在构造ImageButton之后调用setFocusable(false)。然后问题就解决了。