Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / BaseAdapter / 14 сообщений из 14, страница 1 из 1
04.03.2015, 14:02
    #38894585
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Здравствуйте! Помогите, пожалуйста, правильно настроить getView.
Как правильно настроить?
Код: javascript
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.
class adapter_contacts extends BaseAdapter {
	
	Context context;
	ArrayList<HashMap<String, Object>> rows;

	public adapter_contacts(Context context) {
		this.context = context;
		this.rows = getAllPhones();
	}

	public int getCount() {
		return rows.size();
	}
	
	@Override
	public Object getItem(int position) {
		return null;
	}

	@Override
	public long getItemId(int position) {
		return 0;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		//if (convertView == null) {
		
			convertView =  ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.fragment_blacklist_dialog_item0_row, parent, false);
			
			TextView textView1 = (TextView) convertView.findViewById(R.id.textView1);
			textView1.setText(String.valueOf(rows.get(position).get("NAME1")));
			
			TextView textView2 = (TextView) convertView.findViewById(R.id.textView2);
			textView2.setText(String.valueOf(rows.get(position).get("NAME2")));
			
			TextView textView3 = (TextView) convertView.findViewById(R.id.textView3);
			textView2.setText(String.valueOf(rows.get(position).get("NAME3")));
		//};

		return convertView;
	}
}


Очень нужно. Хелп!
...
Рейтинг: 0 / 0
04.03.2015, 14:11
    #38894596
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
да ты шутишь наверное. весь интернет ломится от примеров listview + adapter

P.S. за название класса adapter_contacts пойди ударь себя по пальцам линейкой.
...
Рейтинг: 0 / 0
04.03.2015, 14:36
    #38894643
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
БихолдерКак правильно настроить?
Начни отсюда http://startandroid.ru/ru/uroki/vse-uroki-spiskom/109-urok-50-simpleadapter-ispolzuem-viewbinder.html
И там далее двигайся. Вообще тот сайт очень полезен для старта.
...
Рейтинг: 0 / 0
04.03.2015, 14:36
    #38894644
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
chpashaP.S. за название класса adapter_contacts пойди ударь себя по пальцам линейкой.
Кстати, да. Названия классов пишутся с большой буквы, экземпляры - с маленькой.
...
Рейтинг: 0 / 0
04.03.2015, 18:21
    #38894983
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
wadmanБихолдерКак правильно настроить?
Начни отсюда http://startandroid.ru/ru/uroki/vse-uroki-spiskom/109-urok-50-simpleadapter-ispolzuem-viewbinder.html
И там далее двигайся. Вообще тот сайт очень полезен для старта.
ViewBinder я проходил.
Мне нужно именно BaseAdapter настроить. В инете смотрел примеры с вьюхолдером, но так и не разобрался...
То, что я выложил оно работает, но как будто бы медленно...
Eclipse ругается на строку
Код: javascript
1.
convertView =  ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.fragment_blacklist_dialog_item0_row, parent, false);


Unconditional layout inflation from view adapter: Should use View Holder pattern (use recycled view passed into this method as the second parameter) for smoother scrolling

Помогите, пожалуйста, просто в getView поправьте или допишите, что нужно.
...
Рейтинг: 0 / 0
05.03.2015, 11:42
    #38895690
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Код: javascript
1.
Unconditional layout inflation from view adapter: Should use View Holder pattern (use recycled view passed into this method as the second parameter) for smoother scrolling


use View Holder - как его использовать? Помогите доделать мой код.
...
Рейтинг: 0 / 0
05.03.2015, 12:02
    #38895734
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
ViewHolder это класс, который хранит ссылки на контролы, содержащиеся в строке.
Например:
Код: java
1.
2.
3.
4.
    class ListViewHolder {
        TextView tv;
        long tag;
    }


ВьюХолдер формируется на стадии создания view адаптера:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public View newView(Context context, Cursor cursor, ViewGroup parent) {
            View view = mInflater.inflate(R.layout.drawer_list_item, null);
            ListViewHolder vh = new ListViewHolder();
            vh.tv = (TextView) view.findViewById(android.R.id.text1);
            view.setTag(vh);
            vh.tv.setTextColor(Color.DKGRAY);
            return view;
        }


Так он запоминается и когда нужно к нему имеется доступ.

На этапе bindView:
Код: java
1.
2.
3.
4.
@Override
        public void bindView(View view, Context context, Cursor cursor) {
            ListViewHolder vh = (ListViewHolder)view.getTag();
            if (vh != null) { }


На этапе клика по позиции:
Код: java
1.
Adapter.getView(...).getTag()
...
Рейтинг: 0 / 0
05.03.2015, 12:05
    #38895741
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Это понял bindView, а с getView как настроить?
...
Рейтинг: 0 / 0
05.03.2015, 12:20
    #38895772
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
БихолдерЭто понял bindView, а с getView как настроить?
А там что настраивать?
...
Рейтинг: 0 / 0
05.03.2015, 13:14
    #38895867
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Вы считаете, что код который в первом посте - верный?
Eclipse так не считает и предлагает использовать в коде ViewHolder.
Как его применить в моём коде? Моя цель кэширование записей - чтобы они постоянно не подгружались
...
Рейтинг: 0 / 0
05.03.2015, 13:23
    #38895884
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
1. В getView не стоит каждый раз дергать context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)), нужно сделать это однажды, в конструкторе класса.
2. Там же, в getView нужно предусмотреть ситуацию, когда convertView не пустой и нет смысла создавать все с нуля, используя этот самый viewHolder, который был заполнен ранее;

БихолдерEclipse так не считает и предлагает использовать в коде ViewHolder.
Кстати, как эклипс об этом пишет?
...
Рейтинг: 0 / 0
05.03.2015, 13:24
    #38895887
Бихолдер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Unconditional layout inflation from view adapter: Should use View Holder pattern (use recycled view passed into this method as the second parameter) for smoother scrolling
...
Рейтинг: 0 / 0
05.03.2015, 13:27
    #38895891
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
Бихолдерuse recycled view passed into this method as the second parameter
Пункт 2 моего предыдущего сообщения как раз об этом.
...
Рейтинг: 0 / 0
05.03.2015, 13:29
    #38895899
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BaseAdapter
БихолдерUnconditional layout inflation from view adapter
А это пункт 1. :)
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / BaseAdapter / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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