Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71

Кастомизация ListView

09.01.2014, 22:46. Показов 3705. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Перерыл пол инета но так и не нашел нормальный мануал как можно скастомизировать ListView. Прошу не ругаться, реально не смог найти рабочий вариант.
Есть у меня String title и String Text.
Нужно просто вывести их в ListView у которой в item 2 TextView .
Задаче по идее не сложная, но вот нормального решения для новичка найти не могу.
Прошу помощи!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2014, 22:46
Ответы с готовыми решениями:

Кастомизация ListView
Добрый день. Создаю прокручиваемый список, в каждом поле четыре строки, проблема в написании кода. Создал в ресурсе strings четыре...

Кастомизация ListView
http://imglink.ru/pictures/15-06-14/3d97212a44f93f016eb14cfbf868d023.jpg Как реализовать кастомизацию списка, как в офф приложении...

Кастомизация ListView и использование Sticky Header
Использую библиотеку https://github.com/beworker/pinned-section-listview И столкнулся с вопросом по незнанию Там есть пример, делал на...

10
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
09.01.2014, 23:06
Нормальный пример: http://startandroid.ru/ru/urok... apter.html
0
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
09.01.2014, 23:35
Изучение данного вопроса, я бы посоветовал начать с этого урока http://startandroid.ru/ru/urok... piska.html
0
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
10.01.2014, 16:10  [ТС]
Спс! Хоть это и немножко другое.
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
10.01.2014, 17:15
VictorAkira, Нет ничего проще

1. Создаём класс обёртку, чтобы было удобно работать с двумя текстовыми объектами, это нам поможет дальше:

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
public class StringWrapper {
     private String mTitle;
     private String mText;
 
    public StringWrapper(String mTitle, String mText) {
        this.mTitle = mTitle;
        this.mText = mText;
    }
 
    public StringWrapper() {
    }
 
    public String getTitle() {
        return mTitle;
    }
 
    public void setTitle(String mTitle) {
        this.mTitle = mTitle;
    }
 
    public String getText() {
        return mText;
    }
 
    public void setText(String mText) {
        this.mText = mText;
    }
}
2. Не будем пользоваться уже готовыми адаптерами, напишем свой (для адаптера понадобится layout)

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
public class CustomAdapter extends BaseAdapter {
 
    private List<StringWrapper> data = new ArrayList<StringWrapper>();  //Наша коллекция
    private LayoutInflater inflater;
 
    public CustomAdapter(Context mContext) {
        inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); //Инфлейтер чтобы получить View из XML
    }
 
    public void setData(List<StringWrapper> data) {
        this.data = data;
    }
 
    @Override
    public int getCount() {
        return data.size();
    }
 
    @Override
    public StringWrapper getItem(int i) {
        return data.get(i);
    }
 
    @Override
    public long getItemId(int i) {
        return i;
    }
 
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = inflater.inflate(R.layout.simplt_list_item, null);
        StringWrapper currentItem = getItem(i);
        TextView.class.cast(view.findViewById(R.id.txt_text)).setText(currentItem.getText());
        TextView.class.cast(view.findViewById(R.id.txt_title)).setText(currentItem.getTitle());
        return view;
    }
 
}
и простейший layout (simple_list_item.xml)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
 
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/txt_title"/>
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/txt_text"/>
</LinearLayout>
3. Всё, теперь можно использовать всю эту кашу. Кинем listview на активити:

main.xml

XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/mylist"/>
</LinearLayout>
сама активити:

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
public class MyActivity extends Activity {
 
    private ListView listView;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) findViewById(R.id.mylist);
        initData();
    }
 
    void initData() {
        CustomAdapter customAdapter = new CustomAdapter(this);
        List<StringWrapper> wrapperList = new ArrayList<StringWrapper>();
        wrapperList.add(new StringWrapper("Title1", "Text1"));
        wrapperList.add(new StringWrapper("Title2", "Text2"));
        wrapperList.add(new StringWrapper("Title3", "Text3"));
        wrapperList.add(new StringWrapper("Title4", "Text4"));
        wrapperList.add(new StringWrapper("Title5", "Text5"));
        customAdapter.setData(wrapperList);
        listView.setAdapter(customAdapter);
        customAdapter.notifyDataSetChanged();
    }
 
}
1
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
11.01.2014, 10:33  [ТС]
Спасибо!!!!
0
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
30.01.2014, 12:17  [ТС]
Появился Вопрос!
Есть обычное листвью.
Java
1
2
3
4
ListView viewActionsList = (ListView) findViewById(R.id.actions);
String[] values = new String[] {"Мировые новости", "Новости Ватикана", "Новости России","Новости стран СНГ", "Христианские новости", "О нас"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main_list_item, R.id.product_name, values);
viewActionsList.setAdapter(adapter);
за отображение отвечает обычное текствью.
Как мне поменять фон любого элемента в этом ListView?
Фон должен быть #444756.
То есть к примеру мне надо задать фон 3го элемента.
Как это сделать?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
30.01.2014, 15:56
Цитата Сообщение от VictorAkira Посмотреть сообщение
Появился Вопрос!
Есть обычное листвью.
Java
1
2
3
4
ListView viewActionsList = (ListView) findViewById(R.id.actions);
String[] values = new String[] {"Мировые новости", "Новости Ватикана", "Новости России","Новости стран СНГ", "Христианские новости", "О нас"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main_list_item, R.id.product_name, values);
viewActionsList.setAdapter(adapter);
за отображение отвечает обычное текствью.
Как мне поменять фон любого элемента в этом ListView?
Фон должен быть #444756.
То есть к примеру мне надо задать фон 3го элемента.
Как это сделать?
Так?
Java
1
TextView1.setBackgroundColor(0x88444756);
0
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
30.01.2014, 16:12  [ТС]
Я так понимаю 0x88444756 это код цвета в 16ти или 8-чной системе. Это #444756?
У меня есть лист. И мне надо задать любому элементу данный бекграунд.
Я так понимаю это как-то надо пройтись циклом по adapter'у или ListView, узнать номер позиции и задать цвет. Как это сделать?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
30.01.2014, 16:21
Цитата Сообщение от VictorAkira Посмотреть сообщение
Я так понимаю 0x88444756 это код цвета в 16ти или 8-чной системе. Это #444756?
Да. Впереди 88 вроде как отвечает за непрозрачность.

Цитата Сообщение от VictorAkira Посмотреть сообщение
У меня есть лист. И мне надо задать любому элементу данный бекграунд.
Я так понимаю это как-то надо пройтись циклом по adapter'у или ListView, узнать номер позиции и задать цвет. Как это сделать?
Я почему-то решил, что ваш кастомный ListView заполняется в цикле. Тогда легко можно было бы установить цвет TextView.
0
3 / 3 / 0
Регистрация: 21.03.2013
Сообщений: 71
30.01.2014, 18:42  [ТС]
Он не кастомный) Мне только нужна необходимость менять цвет беграунда.
Я написал как он создается:
Java
1
2
3
String[] values = new String[] {"Мировые новости", "Новости Ватикана", "Новости России","Новости стран СНГ", "Христианские новости", "О нас"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main_list_item, R.id.product_name, values);
viewActionsList.setAdapter(adapter)
Просто в активити приходит переменная с номером элемента, согласно этого должен изменится цвет элемента с данным номером.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2014, 18:42
Помогаю со студенческими работами здесь

Кастомизация индикатора прокрутки в ListView Android Studio
Здравствуйте, вообщем прописал нужные свойства для своего отображения прокрутки в списке, в дизайнере все отображается как должно выглядеть...

Кастомизация SeekBar?
Добрый день! нужно кастомизировать seekbar, знаю (видел) много примеров, но как сделать &quot;прогресс до&quot; и &quot;прогресс...

Кастомизация списков
В инете есть множество примеров изменение внешнего вида ListView с помощью кастомизации и разработкой собственного адаптера. Но везде...

кастомизация приложения
Когда вся техническая часть приложения написана и работает, остаётся только сделать приложение уникальным внешне, то есть превратить его из...

Кастомизация Spinner
Пытаюсь изменить внешний вид spinner Сделал для него стиль вида &lt;style name=&quot;spinner&quot;&gt; &lt;item...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru