Проблема с подсветкой списка Android - PullRequest
0 голосов
/ 02 июня 2011

Я должен составить список предметов.Вот мой XML для макета:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:background="#FFFFFF"
        android:stretchColumns="0">
        <TableRow 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center_horizontal"
            android:id="@+id/listbox">
            <LinearLayout
                android:layout_width="fill_parent"
                android:background="#FFFFFF"
                android:layout_gravity="center_horizontal"
                android:layout_height="fill_parent">
                    <ListView
                        android:id="@+id/android:list"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent">
                    </ListView>
                    <LinearLayout
                        android:id="@android:id/empty" 
                        android:layout_width="fill_parent"
                        android:background="#FFFFFF"
                        android:layout_gravity="center"
                        android:layout_height="fill_parent">
                        <TextView 
                            android:id="@+id/emptytext" 
                            android:paddingTop="100dp"  
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:textColor="#818185"
                            android:textSize="25sp"
                            android:textStyle="bold"
                            android:background="#FFFFFF"
                            android:text="@string/empty_fav"
                            android:gravity="center_horizontal|center_vertical"
                            android:paddingLeft="6dip"
                        />
                    </LinearLayout>  
            </LinearLayout>         
        </TableRow>
</TableLayout>

Это XML для R.layout.custom_list_item_1.

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:textSize="18sp"
    android:textStyle="bold"
    android:background="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>

А вот мой код.

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.fav_layout);
        ....
        ........

        wordDataHelper = new WordDataHelper(getApplicationContext());
        favCursor  = wordDataHelper.getCursorFav();
        startManagingCursor(favCursor);

        favAdapter = new SimpleCursorAdapter(
                this, 
                R.layout.custom_list_item_1,
                favCursor,                                              
                new String[] {WordDataHelper.ENGWORD},           
                new int[] {android.R.id.text1});   

        setListAdapter(favAdapter);

        list = getListView();

        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                // TODO Auto-generated method stub

                showVideo(((TextView) view).getText());

            }});

        list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
            // @Override
            public void onCreateContextMenu(ContextMenu menu, View v,
                    ContextMenu.ContextMenuInfo menuInfo) {
                menu.setHeaderTitle("Context Menu");
                menu.add(0, CONTEXT_DELETE, 1, "Delete Item");
            }
        });

        list.setTextFilterEnabled(true);

        list.setClickable(true);
}

Теперь все показывает нормально и все остальные функции также работают нормально.Но если я касаюсь какой-либо строки, она не выделяется, т.е. цвет не меняется.Есть ли проблема в моем коде, или это должно быть реализовано отдельно?Если да, то как?

Ответы [ 3 ]

0 голосов
/ 02 июня 2011

Проблема в том, что вы перезаписываете фон по умолчанию, который можно нарисовать, простым цветом, который не поддерживает состояния (нажатие, фокусировка и т. Д.). Если вы хотите, чтобы фон был белым, лучше использовать одну из «светлых» тем Android, например, @android:style/Theme.Light.NoTitleBar.

0 голосов
/ 19 ноября 2013

Попробуйте удалить цвет фона вашего элемента TextView:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:textSize="18sp"
    android:textStyle="bold"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>
0 голосов
/ 02 июня 2011

Возможно, вам нужно установить

android:listSelector

атрибут ListView .

Проверьте этот ответ Цвет списка выбора Android , это хорошо объяснено.

Если это не сработало (я не пробовал), попробуйте установить селектор цвета в качестве фона TextView, определенного в R.layout.custom_list_item_1

...