Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
#1

Как раскрасить в цвета элементы ListView - Программирование Android

09.09.2016, 21:35. Просмотров 205. Ответов 12
Метки нет (Все метки)

Как раскрасить в цвета элементы ListView
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3120 / 1922 / 209
Регистрация: 13.01.2012
Сообщений: 7,366
10.09.2016, 07:42     Как раскрасить в цвета элементы ListView #2
DeZik1, для цветов нужно писать свой адаптер
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
10.09.2016, 13:28  [ТС]     Как раскрасить в цвета элементы ListView #3
Можно пример. Приходится все изучать на примерах
xaat
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
10.09.2016, 13:34     Как раскрасить в цвета элементы ListView #4
Вместо ListView изучай сразу RecyclerView, тебе все равно с чем мучатся, а возможностей у RecyclerView много больше
vxg
Модератор
3120 / 1922 / 209
Регистрация: 13.01.2012
Сообщений: 7,366
10.09.2016, 13:49     Как раскрасить в цвета элементы ListView #5
DeZik1
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class MyAdapter extends BaseAdapter {
    private Context context;
    private ArrayList<String> items;
 
    public MyAdapter(Context context, ArrayList<String> items) {
        this.context = items;
    }
 
    @Override
    public int getCount() {
        return items.size();
    }
 
    @Override
    public Object getItem(int position) {
        return null;
    }
 
    @Override
    public long getItemId(int position) {
        return 0;
    }
 
    private class ViewHolder {
        public TextView text;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = null;
        ViewHolder h = null;
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.my_item, null);
 
            h = new ViewHolder();
            h.text = (TextView)view.findViewById(R.id.text);
 
            view.setTag(h);
        } else {
            view = convertView;
            h = (ViewHolder)convertView.getTag();
        }
        
        h.text.setText(items.get(position));
        h.text.setTextColor(position % 2 == 0? 0xFF00FF00 : 0xFF0000FF);
        
        return view;
    }
}
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
10.09.2016, 18:08  [ТС]     Как раскрасить в цвета элементы ListView #6
Я так понял тут четные и нечетные. А чтобы разукрашивать только определенное поле (допустим TV в нем список вложенные названия и т.п. по строкам) допустим если во вложенном списке дата текущая - желтым, старая - красным.

Добавлено через 10 минут
Беда в том, что половина аудитории на 4.3, а RecycledView появился с Android 5 Lollipop

Я пока пытаюсь понять логику - не могу допереть. Сложно переходить - это 5 язык который учу уже.

Кстати параллельно возник вопрос.
Есть приложение. Если запускаю на эмуляторе API 19 все ок - работает как часы, но при переходе на 22 вылазит ошибка следующая
C
1
2
3
4
5
6
7
8
09-10 15:05:08.519 4513-4547/com.example.ks E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                              Process: com.example.ks, PID: 4513
                                                              java.lang.RuntimeException: An error occured while executing doInBackground()
потер лишнее
                                                               Caused by: java.lang.IllegalStateException: The current thread must have a looper!
потер лишнее
                                                                 at com.example.ks.EditProductActivity$GetProductDetails.doInBackground(EditProductActivity.java:227)
                                                                 at com.example.ks.EditProductActivity$GetProductDetails.doInBackground(EditProductActivity.java:152)
Где строки 227 и 152

C
1
227                                 btnOtmena.setEnabled(false);
C
1
152     class GetProductDetails extends AsyncTask<String, String, String> {
vxg
Модератор
3120 / 1922 / 209
Регистрация: 13.01.2012
Сообщений: 7,366
10.09.2016, 18:18     Как раскрасить в цвета элементы ListView #7
DeZik1, то что я нарисовал - пример - поэтому там красятся четные и нечетные. вы можете давать ему список не строк, а вообще - своих структур - в адаптере просто надо прописать как из этих структур делать то что вы хотите (текст, закраску и так далее)
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
10.09.2016, 19:08  [ТС]     Как раскрасить в цвета элементы ListView #8
Я тогда пока не понимаю как, я начал программировать еще недавно меньше 2 недель назад. Пока не все понимаю - изучаю на примерах.
vxg
Модератор
3120 / 1922 / 209
Регистрация: 13.01.2012
Сообщений: 7,366
10.09.2016, 19:19     Как раскрасить в цвета элементы ListView #9
DeZik1
создаем файл ItemDesc.java
Java
1
2
3
4
public class ItemDesc {
    public String text;
    public boolean highlight;
}
в списке храним не строки, а эти вот структуры - в поле text храним, то что будет текстом в списке, а в поле highlight храним признак того, что элемент списка должен быть выделен особым образом.
в адаптере делаем так
Java
1
2
        h.text.setText(items.get(position).text);
        h.text.setTextColor(items.get(position).highlight? 0xFFFF0000 : 0xFFFFFFFF);
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
10.09.2016, 20:07     Как раскрасить в цвета элементы ListView #10
Делаешь кастомный адаптер и родительскому элементу в getView присваиваешь цвет, который хочешь, как это сделать погугли
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
10.09.2016, 20:08  [ТС]     Как раскрасить в цвета элементы ListView #11
Все я окончательно запутался.
Т.е. в итоге получится база типа из 2 полей
Текст - цвет.
Затем в Адаптере уже определяется соответствие текста - цвету?
vxg
Модератор
3120 / 1922 / 209
Регистрация: 13.01.2012
Сообщений: 7,366
10.09.2016, 20:26     Как раскрасить в цвета элементы ListView #12
DeZik1, в адаптере вы можете сопоставить все что хотите всему чему хотите - это зависит от задачи. вы хотели увидеть как можно подкрасить элементы списка - выше был пример
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2016, 20:29     Как раскрасить в цвета элементы ListView
Еще ссылки по теме:
Android Как подобрать цвета
Как удалить ListView программно? Android
Скроллинг ViewPager-а как у ListView Android
Android Как присвоить обработчик ListView?
Android Как вставить резделители в ListView?

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

Или воспользуйтесь поиском по форуму:
DeZik1
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 19
10.09.2016, 20:29  [ТС]     Как раскрасить в цвета элементы ListView #13
Я пока не понял ничего, пошел разбираться.
Yandex
Объявления
10.09.2016, 20:29     Как раскрасить в цвета элементы ListView
Ответ Создать тему
Опции темы

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