0

1 つの CheckBox、いくつかの画像、TextView などを含む行を持つ ListView があります。行を選択すると、チェックボックスのみがアクティブになります。行のフォーカスなし、CheckBox のハイライトなし。現在、行を選択すると、背景が青色 (ホロ ライトの色) になります。それは私が望んでいないことです。色は必要ありません。CheckBox のみをアクティブ化/非アクティブ化します。

これどうやってするの?

私のレイアウトは次のようになります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="3dip"
        android:paddingLeft="5dip"
        android:paddingTop="2dip"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayoutMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:clickable="false"
            android:focusable="false"
            android:focusableInTouchMode="false" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ellipsize="marquee"
                    android:fadingEdge="vertical"
                    android:paddingBottom="3dip"
                    android:paddingLeft="5dip"
                    android:paddingTop="2dip"
                    android:singleLine="true"
                    android:text="@string/test"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textStyle="bold" />

                <my.custom.ProgressChart
                    xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/progress"
                    android:layout_width="181px"
                    android:layout_height="31px"
                    android:layout_marginLeft="1sp"
                    android:layout_marginRight="3sp"
                    android:layout_marginTop="5sp"
                    android:clickable="false"
                    android:focusable="false"
                    android:focusableInTouchMode="false" />
            </LinearLayout>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="3dip"
                android:paddingLeft="5dip"
                android:text="@string/test"
                android:textAppearance="?android:attr/textAppearanceSmall" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
4

1 に答える 1

1

セレクターを無効にするにはandroid:listSelectorListView.

<ListView 
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:listSelector="@android:color/transparent" />

CheckBoxで行が選択されているときに、 をオンまたはオフにしOnItemClickListenerます。

getListView().setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox1);
        checkBox.setChecked(!checkBox.isChecked());
    }

});
于 2013-01-03T09:06:47.150 に答える