Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для BigOblom
124 / 124 / 17
Регистрация: 30.06.2010
Сообщений: 478

Custom ListView item setColor

02.01.2015, 21:48. Показов 1724. Ответов 4

Студворк — интернет-сервис помощи студентам
Всех С Новым Годом!
Начал изучать разработку под Android на IDE Android Studio. Создал TabHost с тремя вкладками, в первой вкладке создал ListView, который программно заполняю массивом строк
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
String[] colors = { "Красный", "Оранжевый", "Желтый", "Зелёный", "Голубой", "Синий", "Фиолетовый"};
 
TabHost tabs = (TabHost)findViewById(R.id.tabHost);
tabs.setup();
 
TabHost.TabSpec spec = tabs.newTabSpec("tag1");
spec.setContent(R.id.tab1);
spec.setIndicator("ЦВЕТА");
tabs.addTab(spec);
 
spec = tabs.newTabSpec("tag2");
spec.setContent(R.id.tab2);
spec.setIndicator("Т2");
tabs.addTab(spec);
 
spec = tabs.newTabSpec("tag3");
spec.setContent(R.id.tab3);
spec.setIndicator("Т3");
tabs.addTab(spec);
 
tabs.setCurrentTab(0);
создал обработчик при нажатии на Item.
Java
1
2
3
4
5
6
7
8
9
10
11
12
ListView list = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, colors);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Name = parent.getAdapter().getItem(position).toString();
        Toast.makeText(getApplicationContext(),
                "itemClick: postition = " + position + ", id = " + id + ", " + Name,
                Toast.LENGTH_SHORT).show();
    }
});
Теперь хочу сделать, чтобы при нажатии на определенный Item в ListView он выделялся определенным цветом и таковым оставался, пока по нему не нажмешь еще раз. Это некоторое подобие списка выбора.

Как такое реализовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2015, 21:48
Ответы с готовыми решениями:

TabHost, ListView и custom Adapter
Здравствуйте. В общем есть TabHost c 3 вкладками. При нажатии на вкладку ХЗ показаться данные в ListView, но у меня при нажатии на эту...

Цвет item в listview
учусь работать с listview и наткнулся на такую проблему: когда проверял в эмуляторе, то все было нормально, буквы черные на белом фоне,...

Custom ListView - тап по всему ряду
Добрый день. Мой ListView содержит TextView и HorizotalScrollView с несколькими изображениями. При этом обработчик OnItemClickListener...

4
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
02.01.2015, 23:51
Нужно кастомизировать адаптер, перегрузив его метод getView.
Также нужно где-то хранить текущее состояния цвета и при клике сравнивать и устанавливать/изменять по какому-то признаку (например, хроанить в метках к View по setTag/getTag).
И при каждом клике и изменении свойств отображения элементов листвью вызывать NotifyDataChanged() адаптера

Вообще, лучше написать свой адаптер вообще наследовав его от BaseAdapter...

Сумбурно может быть, но идти надо где-то в ту сторону
0
 Аватар для BigOblom
124 / 124 / 17
Регистрация: 30.06.2010
Сообщений: 478
03.01.2015, 20:25  [ТС]
Armagedo, лучше то конечно оно лучше. Я только понял, что перегрузить (Override) надо метод getView у ListView. Этого достаточно будет?
Вообще какова цель этого задания: ListView со списком объектов(будут и button и TextView и EditText) возможно разное количество, в которые будет подгружать (тоже пока не совсем понимаю как) данные (возможно из XML, но в идеале хотелось бы БД) далее в низу кнопка, на которой обработчик события onClick, по которому будет подсчитываться какие варианты были выбраны и на их основании строить круговую диаграмму X)
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
03.01.2015, 20:30
+ У листвью нету метода getView...
+ Да, конечно, если всё правильно сделать
0
 Аватар для BigOblom
124 / 124 / 17
Регистрация: 30.06.2010
Сообщений: 478
03.01.2015, 20:38  [ТС]
Armagedo, упс) У адаптера (ArrayAdapter) перегрузить метод)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2015, 20:38
Помогаю со студенческими работами здесь

Изменить цвет у item-a в listView
Привет, вопрос такой. Задача такая: Допустим у меня есть элементы listview разноцветные: (мне нужно при нажатие что бы он стал...

ListView: передача данных в item
Элементы ListView содержат три TextView и два ImageView. В первый TextView записываю данные так: ArrayAdapter&lt;String&gt; adapter...

ListView. Задать высотку Item-а
Посмотрите этот пример(очень простой) - http://freehabr.ru/blog/android/2022.html Как там изменить размер элементов - они все должны быть...

EditText в одном из Item ListView
Помогите решить довольно нестандартную задачу. У меня есть ListView, есть Adapter который делает кастомный вид разметки. В ListView...

Вылет приложения про создании Custom ListView
Главная Activity import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru