Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
BigOblom
119 / 119 / 7
Регистрация: 30.06.2010
Сообщений: 444
#1

Custom ListView item setColor - Программирование Android

02.01.2015, 21:48. Просмотров 595. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2015, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Custom ListView item setColor (Программирование Android):

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

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

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

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

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

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

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

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

Сумбурно может быть, но идти надо где-то в ту сторону
0
BigOblom
119 / 119 / 7
Регистрация: 30.06.2010
Сообщений: 444
03.01.2015, 20:25  [ТС] #3
Armagedo, лучше то конечно оно лучше. Я только понял, что перегрузить (Override) надо метод getView у ListView. Этого достаточно будет?
Вообще какова цель этого задания: ListView со списком объектов(будут и button и TextView и EditText) возможно разное количество, в которые будет подгружать (тоже пока не совсем понимаю как) данные (возможно из XML, но в идеале хотелось бы БД) далее в низу кнопка, на которой обработчик события onClick, по которому будет подсчитываться какие варианты были выбраны и на их основании строить круговую диаграмму X)
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
03.01.2015, 20:30 #4
+ У листвью нету метода getView...
+ Да, конечно, если всё правильно сделать
0
BigOblom
119 / 119 / 7
Регистрация: 30.06.2010
Сообщений: 444
03.01.2015, 20:38  [ТС] #5
Armagedo, упс) У адаптера (ArrayAdapter) перегрузить метод)
0
03.01.2015, 20:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2015, 20:38
Привет! Вот еще темы с ответами:

Ошибка при выборе Item в ListView - Программирование Android
Здравствуйте уважаемые форумчане. Не могу определить где ошибся. У меня есть ListView где несколько Item-ов при клике на любой из них...

ListView кнопка добавить item в избранное - Программирование Android
Здравствуйте форумчане, не нашел в инете подобный вопрос, может неправильно делал поисковой запрос. Вообщем, у меня есть ListView со 100...

Получить item из listView по индексу. Адаптер - simpleadapter - Программирование Android
Задача - убрать из listview некоторый итем. Думаю, можно сделать его прозрачным, или изменить адаптер. Прозрачно сделать не получалось....

Убрать все виды выделений с item в ListView - Программирование Android
Использую android:cacheColorHint=&quot;@android:color/transparent&quot;, но не помогает. Как можно убрать все виды выделений с item в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru