С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
1

выделение элемента в ListView

17.10.2013, 10:16. Показов 6687. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, что я делаю не так? У меня в кастомном диалоге создается и заполняется список, при его отображении необходимо чтоб по умолчанию был выделен первый элемент. код ниже:

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
51
52
53
54
55
56
57
58
59
60
61
private void creatDialog() {
        final ArrayAdapter<AccountItem> adapter;
        LinearLayout contentView;
        Button closeBtn;
        ListView lv;
        contentView = new LinearLayout(context);
 
        View.inflate(context, R.layout.accounts_dialog_layout, contentView);
        closeBtn = (Button) contentView.findViewById(R.id.close);
        closeBtn.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                accountsDialog.cancel();
            }
 
        });
 
        adapter = new ArrayAdapter<AccountItem>(context, R.layout.account_item) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = getItem(position).getView();
                
                return v;
            }
        };
        lv = (ListView) contentView.findViewById(R.id.accounts_list);
        lv.setAdapter(adapter);
 
        
 
        final Enumeration<?> enumeration = ((AbstractActivity)context)
                .getService().getApi().getAccounts().getEnumeration();
        while (enumeration.hasMoreElements()) {
            Account a = (Account) enumeration.nextElement();
            synchronized (a) {
                adapter.add(new AccountItem(context, a));
            }
        }
        
        adapter.notifyDataSetChanged();
        
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ((AbstractActivity)context).getService().
                setCurrentAccount(adapter.getItem(position).getAccount());
                updateBalance();
                accountsDialog.cancel();
            }
 
        });
        
        lv.setSelection(0);//Выделяю первый элемент
        
 
        accountsDialog = new AccountsDialog(context, R.style.CustomDialog);
 
        accountsDialog.setContentView(contentView);
    }
вот мой класс AccountItem

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
private class AccountItem {
        LinearLayout _view;
        TextView accountId;
        TextView balance;
        Account _account;
 
        public AccountItem(Context context, Account account) {
            _account = account;
            _view = new LinearLayout(context);
 
            View.inflate(context, R.layout.account_item, _view);
            _view.setBackgroundColor(getResources().getColor(android.R.color.transparent));
            
            accountId = (TextView) _view.findViewById(R.id.account_id);
            accountId.setText(account.getID());
            balance = (TextView) _view.findViewById(R.id.account_balance);
            balance.setText(GuiUtils.numberToMoney(account.getBalance(), 2));
        }
 
        public View getView() {
            if(_account.getID().compareTo(((AbstractActivity) context)
                    .getService().getCurrentAccount().getID()) == 0) _view.setSelected(true);
            return _view;
        }
        
        public Account getAccount() {
            return _account;
        }
    }
при нажатии на элементы списка они выделяются замечательно. но при открытии первый элемент не выделен почемуто.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2013, 10:16
Ответы с готовыми решениями:

ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии?
1. Есть свой класс ContactsSimpleCursorAdapter, в методе public void bindView(View view, Context...

Выделение цветом в ListView
Есть адаптер наследуемый от SimpleCursorAdapter. В нем ImageView, TextView и CheckBox. public...

Убрать выделение строк в Listview
Всем привет! Подскажите кто знает как можно убрать выделение строк в listview?

Выделение строк ListView другим цветом
Здравствуйте, уважаемые! Подскажите как выделить четную (нечетную) строку ListView другим цветом....

4
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2013, 12:40 2
а если так
Java
1
lv.setItemChecked(0, true);
?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
17.10.2013, 15:00  [ТС] 3
Цитата Сообщение от V0v1k Посмотреть сообщение
1
lv.setItemChecked(0, true);
тоже почему то ни какого эффекта((
вот мой xml файл для айтима, может с ним что не так
XML
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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/account_item"
    android:gravity="center_vertical" >
 
    <TextView
        android:id="@+id/account_id"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="@dimen/padding_large"
        android:textSize="18dp"
        android:textStyle="bold" />
 
    <TextView
        android:id="@+id/account_balance"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingRight="@dimen/padding_large"
        android:textSize="18dp"
        android:textStyle="bold" />
 
</LinearLayout>
а вот бэкграунд:

XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
    <item android:drawable="@drawable/account_selected" android:state_pressed="true"/>
    <item android:drawable="@drawable/account_selected" android:state_focused="true"/>
    <item android:drawable="@drawable/account_im"/>
 
</selector>
при нажатии элементы выделяются как и задумано с картинкой @drawable/account_selected, а программно почему то никак не хотят((
0
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
17.10.2013, 15:42 4
потому что selected нужен.
XML
1
<item android:drawable="@drawable/account_selected" android:state_selected="true"></item>
1
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
18.10.2013, 09:52  [ТС] 5
Блин, точно, спасибо, тупо не забыл про него)))
0
18.10.2013, 09:52
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2013, 09:52
Помогаю со студенческими работами здесь

Выделение искомого элемента в ListView
Работаю с ListView, а оно не хочет мне элемент который я пытаюсь найти выделять. ДЖелаю я...

Постоянное выделение элемента в ListView
У меня клиент-серверная программа. Я создаю простой чат между сервером и клиентами. На форме...

Выделение выбранного элемента ListView
Здравствуйте. Подскажите как сменить цвет выделения элемента в ListView. WinForms. Спасибо!

Выделение элемента ListView в результате поиска
В ListView построчно отображены записи. Поиск выполнил так: Dim FItem As ListViewItem =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru