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

Кастомизация списков - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Android Загрузка изображения на стену vkontakte http://www.cyberforum.ru/android-dev/thread967273.html
Здравствуйте всем, возникла необходимость загрузить фотографию на стену вконтакте. На сайте разработчиков есть статья Загрузка файлов Там написано что необходимо выполнить 3 пункта. 1й - получить...
Программирование Android Java на Android Чисто теоретический вопрос. Почему Григорий Корнеев в своих лекциях http://www.lektorium.tv/lecture/?id=13356 говорит что в Android не совсем Java? http://www.cyberforum.ru/android-dev/thread967229.html
Программирование Android Распознавание текста с фотографии
как можно распознать текст на фотографии с камеры. алгоритм, готовая реализация, чего нибудь почитать и т.д. где искать
Программирование Android LogCat при отладке
Почему когда при отладке происходит сбой программы, то LogCat ничего не пишет? Приходится запускать еще раз, но уже без дебагера и смотреть "FATAL EXCEPTION".
Программирование Android Десятичный разделитель http://www.cyberforum.ru/android-dev/thread966937.html
Скажите, у андроида десятичный разделитель всегда точка? Если нет, то как получить его значение? Искал что-то вроде DecimalSeparator, но не нашел.
Программирование Android Bluetooth Здравствуйте написал вот что package com.example.fdsafdfa; import java.io.OutputStream; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import... подробнее

Показать сообщение отдельно
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.10.2013, 17:25
При создании своего адаптера, можно использовать любые типы данных.
Вот пример из проекта над которым работаю:
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
private static class OrderAdapter extends ArrayAdapter<Dish> {
        
        public static final String ARG_OLD_COUNT = "ARG_OLD_COUNT";
        public static final String ARG_DISH_ID = "ARG_DISH_ID";
        public static final String ARG_DISH_POSITION = "ARG_DISH_POSITION";
        
        private List<Dish> items;
        private LayoutInflater inflater;
        private FragmentManager fragmentManager;
        
        private ImageLoader imageLoader = ImageLoader.getInstance();
        private DisplayImageOptions options;
 
        public OrderAdapter(ActionBarActivity context, List<Dish> objects) {
            super(context, R.layout.order_list_item, objects);
            inflater = LayoutInflater.from(context);
            fragmentManager = context.getSupportFragmentManager();
            this.items = objects;
            
            options = new DisplayImageOptions.Builder()
                        .cacheInMemory(true)
                        .cacheOnDisc(true)
                        .displayer(new FadeInBitmapDisplayer(400))
                        .bitmapConfig(Bitmap.Config.RGB_565)
                        .build();
        }
        
        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            final ViewHolder holder;
            if(convertView == null) {
                holder = new ViewHolder();
                convertView = inflater.inflate(R.layout.order_list_item, null);
                holder.name = (TextView) convertView.findViewById(R.id.order_item_name);
                holder.price = (TextView) convertView.findViewById(R.id.order_item_price);
                holder.count = (TextView) convertView.findViewById(R.id.order_item_count);
                holder.icon = (ImageView) convertView.findViewById(R.id.order_item_icon);
                holder.countPicker = convertView.findViewById(R.id.count_layout);
                holder.position = position;
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            
            final Dish item = items.get(position);
            
            holder.name.setText(item.name);
            holder.price.setText(item.price);
            holder.count.setText(String.valueOf(item.getCount()));
            
            if(item.image_url_small != null && item.image_url_small.length() > 0) {
                imageLoader.displayImage(item.image_url_small, holder.icon, options);
            }
            
            holder.countPicker.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    NumberPickerDialog dialog = new NumberPickerDialog();
                    Bundle args = new Bundle();
                    args.putInt(ARG_OLD_COUNT, item.getCount());
                    args.putString(ARG_DISH_ID, item.id);
                    args.putInt(ARG_DISH_POSITION, holder.position);
                    dialog.setArguments(args);
                    dialog.show(fragmentManager, "CountPicker");
                }
            });
            
            return convertView;
        }
        
        static class ViewHolder {
            TextView name;
            TextView price;
            TextView count;
            ImageView icon;
            View countPicker;
            int position;
        }
        
    }
Создание адаптера:
Java
1
2
List<Dish> dish = ...;
OrderAdapter mAdapter = new OrderAdapter(this, dish);
Выбор элемента по позиции при клике:
Java
1
2
3
4
5
6
7
8
orderListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {    
                Intent startIntent = new Intent(OrderActivity.this, DishInfoActivity.class);
                startIntent.putExtra(DishInfoActivity.ARG_DISH_ID, dish.get(position).id);
                startActivity(startIntent);
            }
        });
И сам pojo:
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
public class Dish {
 
    public Long _id;
    public String id;
    public String id_menu;
    public String id_sub_menu;
    public String name;
    public String image_url_large;
    public String image_url_small;
    public String price;
    public String composition;
    public String weight;
    public String likes;
    public String dislikes;
    public String date_update;
    
    private transient int count;
 
    public int getCount() {
        return count;
    }
 
    public void setCount(int count) {
        this.count = count;
    }
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.