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

Кастомизация списков - Android

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

Показать сообщение отдельно
Netscape
 Аватар для Netscape
371 / 358 / 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;
    }
 
}
 
Текущее время: 10:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru