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

Не понятное поведение BaseAdapter - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android При перезапуске телефона сбрасывается рекорд http://www.cyberforum.ru/android-dev/thread1241437.html
У меня проблема в игре с рекордом. Создается переменная статическая для счета и для рекорда , рекорд сравнивается с счетом и если счет больше рекорда то перезаписывается, все работает только есть...
Программирование Android Работа с классом View Здравствуйте форумчане, надеюсь все знают этот элемент View. Так вот не знаю как вернуться в начало(( Вроде и на гугле посмотрел и сам попробовал, не один назад и на один элемент вперед есть, а вот... http://www.cyberforum.ru/android-dev/thread1241408.html
Программирование Android Вызов диалога из кнопки в action bar-е
Закинул кнопочку в action bar при нажатии на которую должен создаваться диалог, но вылетает ошибка. Поискав в интернете причины попробовал сменить getApplicationContext() на this ,а также на...
Android. Регистрация разработчика и продавца. Нужно каждый аккаунт отдельно покупать? Программирование Android
То есть за 25$ и 25$ другой? И какая между ними разница?
Программирование Android Динамически созданный элемент по центру http://www.cyberforum.ru/android-dev/thread1241152.html
Как расположить динамически созданный progressbar по центру: ProgressBar progressBar = new ProgressBar(this.getContext(),null,android.R.attr.progressBarStyleLarge); this.addView(progressBar);
Программирование Android Базы данных в андроиде Структура данных примерно такова public class Stat { int id, key_id; List<String> date; List<String> rub_1; List<String> rub_2; } воть загвостка в том что поля могут... подробнее

Показать сообщение отдельно
Sleep37
4 / 4 / 1
Регистрация: 06.01.2013
Сообщений: 16

Не понятное поведение BaseAdapter - Программирование Android

12.08.2014, 11:51. Просмотров 774. Ответов 7
Метки (Все метки)

Добрый день!
Проблема в следующем: есть ListView, есть адаптер унаследованный от BaseAdapter.
В адаптере в методе getView загружаю лайоут, на лайоуте два элемента TextView и Button.
На кнопку вешаю обработчик onClick, при вызове которого в TextView, (который рядом с кнопкой) пишу текст, например: - ok. Проблема в том, что это срабатывает не только для одного TextView во всем ListView, а для каждого TextView который находится на новом экране.
Т.е например во всем ListView 10, на экране отображается по 5 элементов, получается 2 экрана, при клике на самую первую кнопку, TextView изменится в 0 позиции ( т.е самый первый ) и в 6 ( т.к 6 позиция расположена на другом экране)

код адаптера:
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
public class MYAdapter extends BaseAdapter{
 
    private List<String> items;
    private LayoutInflater layoutInflater;
    public MYAdapter(Context context, List<String> items) {
        this.items = items;
        this.layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    @Override
    public int getCount() {
        return items.size();
    }
 
    @Override
    public String getItem(int position) {
        return items.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        ViewHolder viewHolder;
        if(convertView == null){
            convertView = layoutInflater.inflate(R.layout.item, null);
            viewHolder = new ViewHolder();
            viewHolder.button = (Button) convertView.findViewById(R.id.button);
            convertView.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder) convertView.getTag();
        }
        viewHolder.button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View rootView = (View) v.getParent();
                TextView txt = (TextView) rootView.findViewById(R.id.text);
                txt.setText("OK");
            }
        });
        return convertView;
    }
    static class ViewHolder{
        Button button;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru