Как изменить цвет фона в представлении списка, если элемент в представлении списка не выбран - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю в Android для разработки приложения, которое содержит представление списка, в котором цвет фона определенного элемента изменяется при щелчке элемента (который уже выполняется с помощью «ListSelector» в файле .xml). Теперь мне нужно отменить выбор элемента, который я сделал через "mListview.clearChoices ()". Но цвет фона ранее выбранного элемента не изменяется. Ребята, можете дать какое-нибудь решение?

Вот мой код xml:

<ListView
          android:id="@+id/listView"
          android:layout_width="@dimen/dp_130"
          android:layout_height="wrap_content"
          android:background="@color/malibu"
          android:gravity="center"
          android:minHeight="@dimen/dp_50"
          android:listSelector="#e60b62da"/>

Вот код в файле Activity:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                check = 1;
                item_position=position;
                Toast.makeText(MacroActivity.this, "Item clicked_ macro" + position, Toast.LENGTH_SHORT).show();
                item_value = (String) mListView.getItemAtPosition(position);
                Toast.makeText(MacroActivity.this, "Item clicked_ macro_value" + item_value, Toast.LENGTH_SHORT).show();
                    mListView.clearChoices();
            }
        });

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Это одно из возможных решений, которое можно использовать для решения вышеуказанного вопроса. Я использовал listview.setSelector (), в котором цвет фона, назначенный для элемента в просмотре списка, можно обнулить, но эта функция не позволяет устанавливать цвет фона для другого элемента в просмотре списка, если это необходимо.

mListView.setSelector (new ColorDrawable (0));

0 голосов
/ 27 апреля 2018

Когда вы выбираете представление элемента списка (в методе onItemClick), вы можете установить переменную в своем адаптере, чтобы сохранить индекс выбранного элемента списка. Тогда вы можете позвонить notifyDatasetChange(). В адаптере, в котором вы создаете и настраиваете свойства представлений элементов списка, вы можете проверить, соответствует ли выбранный индекс текущему выбранному представлению. В этом случае вы можете установить цвет, иначе вы можете установить другой.

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...