Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Кастомный адаптер / 9 сообщений из 9, страница 1 из 1
23.09.2014, 10:06
    #38754263
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
Здравствуйте. Помогите пожалуйста разобраться в моём вопросе.

Я создал кастомный адаптер , но он неправильно работает.
1.При добавлении строк которые уходят с видимой части экрана , все строки в массиве , начинают беспорядочно менять значение.
2.Адаптер ,добавляет в ListView TextView с низу списка, а не так как у ArrayList<String> с верху списка.

Привожу код адаптера :

Код: 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.
import java.util.ArrayList;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;


public class BoxAdapter extends BaseAdapter {

	  Context ctx;
	  LayoutInflater lInflater;
	  ArrayList<String> objects;			  
	  String tolo2="---";
	  TextView tvDescr;
//----------------------------------- Конструктор -------------------	  
	  BoxAdapter(Context context, ArrayList<String> catnames2) {
	    ctx = context;
	    objects = catnames2;	   
	    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 = convertView;
	    if (convertView == null) 
	    {
	      view = lInflater.inflate(R.layout.item2, parent, false);
	      Log.i("Лог массива getCount() - "+getCount() ,tolo2);
	      ((TextView) view.findViewById(R.id.tvDescr)).setText((CharSequence) objects.get(0));
	    }
	    return view;
	  }
////////////////
	}



При нажатии на кнопку , адаптер должен выводить строку "Hello" с цифрой . Цифра должна увеличиваться с каждой добавленной строкой.
Видео :
www.youtube.com/watch?v=4PxIcJiJhDM&feature=youtu.be


[youtube=
YouTube Video
...
Рейтинг: 0 / 0
23.09.2014, 12:54
    #38754506
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
почему objects.get(0) ? в метод getView параметр int position для кого передается, для римского папы?
...
Рейтинг: 0 / 0
23.09.2014, 12:59
    #38754515
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
кстати зачем самому реализовывать хранение элементов и все, что с ним связано? про ArrayAdapter слыхал?
...
Рейтинг: 0 / 0
23.09.2014, 13:17
    #38754558
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
chpasha,

ArrayAdapter я уже использовал , но мне нужен адаптер который бы обрабатывал одновременно Checkbox и TextView .
...
Рейтинг: 0 / 0
23.09.2014, 13:18
    #38754562
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
chpasha,

Спасибо сейчас попробую так
((TextView) view.findViewById(R.id.tvDescr)).setText((CharSequence) objects.get(position));
...
Рейтинг: 0 / 0
23.09.2014, 13:24
    #38754575
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
chpasha,
Ооо Спасибо большое)) Всё заработало ) Еще бы если бы сделать вновь поступившая информация добавлялась с верху списка а не снизу.
...
Рейтинг: 0 / 0
23.09.2014, 13:48
    #38754626
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
НикоДимиденArrayAdapter я уже использовал , но мне нужен адаптер который бы обрабатывал одновременно
у тебя какое-то фундаментальное недопонимание того, как устроены адаптеры

авторArrayAdapter is a concrete BaseAdapter that is backed by an array of arbitrary objects. By default this class expects that the provided resource id references a single TextView. If you want to use a more complex layout, use the constructors that also takes a field id. That field id should reference a TextView in the larger layout resource.

However the TextView is referenced, it will be filled with the toString() of each object in the array. You can add lists or arrays of custom objects. Override the toString() method of your objects to determine what text will be displayed for the item in the list.

To use something other than TextViews for the array display, for instance, ImageViews, or to have some of data besides toString() results fill the views, override getView(int, View, ViewGroup) to return the type of view you want.



НикоДимиденЕще бы если бы сделать вновь поступившая информация добавлялась с верху списка а не снизу.
ну так и добавляй в начало - переопредели метод add адаптера и вызывай в нем insert(T object, int index). но сначала перепиши под ArrayAdapter и убери все ненужные методы и объекты.
...
Рейтинг: 0 / 0
24.09.2014, 04:55
    #38755437
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
chpasha,
Вот так сделал и всё получилось

catnames.add(0," Hello "+i1); //Добавляем текст в массив

Но теперь проблема в отображении Checkbox . Когда я ставлю галочку на Checkbox , то еще одна галочка появляется в тех четбоксах , которых не видно в данные момент на экране.



Мне хочется научиться хорошо разбираться в адаптерах и их уметь создавать .
...
Рейтинг: 0 / 0
24.09.2014, 12:01
    #38755870
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кастомный адаптер
НикоДимиден,

на стартандроиде есть статьи про адаптеры.
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Кастомный адаптер / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]