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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Ametistos
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
#1

выделение элемента в ListView - Программирование Android

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

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

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

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

Выделение цветом в ListView - Программирование Android
Есть адаптер наследуемый от SimpleCursorAdapter. В нем ImageView, TextView и CheckBox. public void bindView(View view, Context...

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

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

Замена элемента в ListView - Программирование Android
Доброго времени суток, форумчане! Столкнулся с проблемой есть ListView у которого все элементы это TextView, как запрограммировать чтобы...

Скрытие элемента ListView - Программирование Android
Заполняю своим адаптером, унаследованным от BaseAdapter. В качестве item использую свой класс который имеет поле isEnable - если оно равно...

4
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2013, 12:40 #2
а если так
Java
1
lv.setItemChecked(0, true);
?
0
Ametistos
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
Netscape
373 / 360 / 48
Регистрация: 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
Ametistos
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
18.10.2013, 09:52  [ТС] #5
Блин, точно, спасибо, тупо не забыл про него)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 09:52
Привет! Вот еще темы с ответами:

Зафиксировать пзицию элемента в ListView - Программирование Android
Коллеги, нужен совет. Ситуация такая - Есть один ListView, элементом списка является WebView. Так вот, после иницализации адаптера нужно...

Клик по айтему элемента ListView - Программирование Android
Добрый день товарищи. Есть необходимость отследить нажатие на элемент элемента ListView, извиняюсь за тавтологию. Вот пока лишь...

ListView не работает выбор элемента - Программирование Android
Доброго времени суток. Который день мучаюсь. Не знаю как поменять цвет ListView, так что бы не сбить работу выбора элемента при нажатии....

Оформление элемента списка ListView - Программирование Android
Здравствуйте. Подскажите, как можно добиться результата, показанного на рисунке 1 (это в Paint подрисовано :) ) У меня сейчас выглядит...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
18.10.2013, 09:52
Ответ Создать тему
Опции темы

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