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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как по наименованию найти нужный обьект или массив в JSON http://www.cyberforum.ru/android-dev/thread1777493.html
К примеру у меня есть JSON полученный в ответ на запрос к API Places и мне нужно в этом JSON пройти все объекты массива results и найти массив "photos". Как это сделать? Как по наименованию найти нужный обьект или массив в JSON?
Программирование Android Возможно нестандартное расположение аппаратной клавиатуры? Хочу "Войти" впихнуть под клавиатуру, можно так сделать? Если ответ положительный, куда, собственно, копать, чтобы это реализовать? http://www.cyberforum.ru/android-dev/thread1777376.html
Must supply a valid URL Jsoup Программирование Android
Вот мой код: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_import, container, false); //Button fragbut = (Button) rootView.findViewById(R.id.fragbut); listView4 = (ListView) rootView.findViewById(R.id.listView999); textView4 = (TextView)...
Медленная подгрузка UI Программирование Android
Добрый день! Есть такой кейс. Две активити. Из одной можно запустить другую. В обеих есть свой TabLayout. Так вот, как исправить такой баг, что тень под TabLayout подгружается очень медленно при старте новой активити? Конечно, можно визуально это скрасить анимацией, но мб я что-то не так делаю? Есть рекомендации?
Программирование Android Handler при пересоздании активити http://www.cyberforum.ru/android-dev/thread1777302.html
У меня есть поток Thread, который запускается во фрагменте и получает ссылку на изображение с сервера(парсит JSON выделяет ссылку). И Handler который связан с UI потоком, запускает Runnable в UI потоке, в котором через Glide загружает изображение в Layout. Вопрос в следующем: фрагмент может пересоздаваться не только при поворотах, а и при смене языка и доступности клавиатуры и др ситуации. И в...
Программирование Android Создание игр под Android Добрый день! Я новичок в этом деле и хотел задать некоторые возможно глупые вопросы. Как происходит создание игр под Android? Что дает использование движков типа Cocos2d-x, LibGDX? Как создается графика игры, используется сторонний софт, или все есть в составе вышеперечисленных движков? Что такое физический движок? Что такое графический движок? Что такое игровой движок? Входит ли в... подробнее

Показать сообщение отдельно
arvalon
21 / 6 / 2
Регистрация: 26.10.2012
Сообщений: 158
Записей в блоге: 1

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

08.07.2016, 00:17. Просмотров 153. Ответов 2
Метки (Все метки)

Доброго дня.
Необходимо сделать свой список с своим View, нашёл статью и сделал как в ней. Но поведение CheckBox'ов оказалось поломанное. Если отметить некоторые чекбоксы и пролистать ниже - симметрично через равное количество не отмеченных чекбоксов опять появляются отмеченные! Но я их не отмечал, даже не долистал ни разу ещё до них!
Похоже что пролистывание списка как-то использует ранее созданные элементы и берёт их, не очищая до конца. Но где проблема не могу выявить.
Код адаптера из статьи
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
public class BoxAdapter extends BaseAdapter {
  Context ctx;
  LayoutInflater lInflater;
  ArrayList<Product> objects;
 
  BoxAdapter(Context context, ArrayList<Product> products) {
    ctx = context;
    objects = products;
    lInflater = (LayoutInflater) ctx
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  }
 
  // кол-во элементов
  @Override
  public int getCount() {
    return objects.size();
  }
 
  // элемент по позиции
  @Override
  public Object getItem(int position) {
    return objects.get(position);
  }
 
  // id по позиции
  @Override
  public long getItemId(int position) {
    return position;
  }
 
  // пункт списка
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    // используем созданные, но не используемые view
    View view = convertView;
    if (view == null) {
      view = lInflater.inflate(R.layout.item, parent, false);
    }
 
    Product p = getProduct(position);
 
    // заполняем View в пункте списка данными из товаров: наименование, цена
    // и картинка
    ((TextView) view.findViewById(R.id.tvDescr)).setText(p.name);
    ((TextView) view.findViewById(R.id.tvPrice)).setText(p.price + "");
    ((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.image);
 
    CheckBox cbBuy = (CheckBox) view.findViewById(R.id.cbBox);
    // присваиваем чекбоксу обработчик
    cbBuy.setOnCheckedChangeListener(myCheckChangList);
    // пишем позицию
    cbBuy.setTag(position);
    // заполняем данными из товаров: в корзине или нет
    cbBuy.setChecked(p.box);
    return view;
  }
 
  // товар по позиции
  Product getProduct(int position) {
    return ((Product) getItem(position));
  }
 
  // содержимое корзины
  ArrayList<Product> getBox() {
    ArrayList<Product> box = new ArrayList<Product>();
    for (Product p : objects) {
      // если в корзине
      if (p.box)
        box.add(p);
    }
    return box;
  }
 
  // обработчик для чекбоксов
  OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView,
        boolean isChecked) {
      // меняем данные товара (в корзине или нет)
      getProduct((Integer) buttonView.getTag()).box = isChecked;
    }
  };
}
Подскажите, посмотрите. Может проблема скрывается где-то в этих строчках начала метода getView?
Java
1
2
3
4
View view = convertView;
    if (view == null) {
      view = lInflater.inflate(R.layout.item, parent, false);
    }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru