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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
zesen
122 / 85 / 1
Регистрация: 17.10.2010
Сообщений: 432
#1

Как лучше "повесить" обработчик событий на пункты списка, а потом отлавливать нажатие на них - Android

29.01.2014, 17:22. Просмотров 610. Ответов 1
Метки нет (Все метки)

Здравствуйте! Ниже приведенный код, получает json строку, затем достает от туда массив и данные из каждой строчки массива, распихивает в "маленькие" layout'ы которые в свою очередь закидываются в LayoutInflater, таким образом получается список. Натолкните, пожалуйста, на мысль, как лучше реализовать. Что бы в одной строке(в "маленьком" layout'е) не выводить все, а только одну строчку, все остальное запихивать в массив, а при нажатии на строчку выводить остальное содержимое(которое запихнуто в массив) в виде Toast. К чему привязывать обработчик? К Layout или TextView? По чем отлавливать нажатие нажатие, как вычислять какая именно строка нажата?
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
83
84
public void blockStats()
    {
        colors[0] = Color.parseColor("#7f7f7f");
        colors[1] = Color.parseColor("#cccccc");
 
        LinearLayout blockStatsLayout = (LinearLayout) findViewById(R.id.blockStatsLayout);
 
        LayoutInflater ltInflater = getLayoutInflater();
 
        intent = getIntent();
 
        Json json = new Json();
 
        apiKey = intent.getStringExtra("apiKey");
 
        try
        {
            responseMap = json.getJson(Command.BLOCK_STATS, coinType, apiKey);
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
 
        JSONParser parser = new JSONParser();
        JSONArray array = new JSONArray();
        JSONObject jsonObj;
        try
        {
            array = (JSONArray)parser.parse(responseMap.get(data).toString());
        }
        catch (ParseException e) {
            e.printStackTrace();
        }
 
        //Если array не пустой
        if(!array.isEmpty())
        {
            for (int i = 0; i < array.size(); i++)
            {
                View item_workers = ltInflater.inflate(R.layout.item_block_stats, blockStatsLayout, false);
 
                TextView tvInternalBlockId = (TextView) item_workers.findViewById(R.id.tvInternalBlockId);
                TextView tvBlockFinder = (TextView) item_workers.findViewById(R.id.tvBlockFinder);
                TextView tvBlockValue = (TextView) item_workers.findViewById(R.id.tvBlockValue);
                TextView tvShareValue = (TextView) item_workers.findViewById(R.id.tvShareValue);
                TextView tvTimestamp = (TextView) item_workers.findViewById(R.id.tvTimestamp);
                TextView tvPersonalBlockYield = (TextView) item_workers.findViewById(R.id.tvPersonalBlockYield);
                TextView tvPersonalValuePerBlock = (TextView) item_workers.findViewById(R.id.tvPersonalValuePerBlock);
 
                jsonObj = (JSONObject) array.get(i);
 
                tvInternalBlockId.setText(getString(R.string.str_block_stats_activity_internal_block_id) + " : " + jsonObj.get(BlockStats.INTERNAL_BLOCK_ID).toString());
                tvBlockFinder.setText(getString(R.string.str_block_stats_activity_block_finder) + " : " + jsonObj.get(BlockStats.BLOCK_FINDER).toString());
                tvBlockValue.setText(getString(R.string.str_block_stats_activity_block_value) + " : " + jsonObj.get(BlockStats.BLOCK_VALUE).toString());
                tvShareValue.setText(getString(R.string.str_block_stats_activity_share_value) + " : " + jsonObj.get(BlockStats.SHARE_VALUE).toString());
 
                Date time = new Date((long)Integer.parseInt(jsonObj.get(BlockStats.TIMESTAMP).toString()) * 1000);
                tvTimestamp.setText(getString(R.string.str_block_stats_activity_timestamp) + " : " + String.valueOf(time));
 
                float personalBlockYieldFloat = Float.valueOf(jsonObj.get(BlockStats.PERSONAL_BLOCK_YIELD).toString());
 
                personalUnconfirmed20blockSumFloat += personalBlockYieldFloat;
                tvPersonalValuePerBlock.setText(getString(R.string.str_block_stats_activity_personal_value_per_block) + " : " + String.format("%.7f",personalBlockYieldFloat));
 
                //tvPersonalBlockYield.setText(getString(R.string.str_block_stats_activity_personal_block_yield) + " : " + );
                tvPersonalBlockYield.setText(getString(R.string.str_block_stats_activity_personal_block_yield) + " : " + jsonObj.get(BlockStats.PERSONAL_SHARE_VALUE_PER_BLOCK).toString());
 
                personalShareValue20blockSumFloat += Float.valueOf(jsonObj.get(BlockStats.PERSONAL_SHARE_VALUE_PER_BLOCK).toString());
 
                item_workers.getLayoutParams().width = LayoutParams.FILL_PARENT;
                item_workers.setBackgroundColor(colors[i % 2]);
 
                blockStatsLayout.addView(item_workers);
            }
        }
 
        TextView tvPersonalShareValue20block = (TextView) findViewById(R.id.tvPersonalShareValue20block);
        tvPersonalShareValue20block.setText(getString(R.string.str_block_stats_activity_personal_share_value_20_block) + " : " + Float.toString(personalShareValue20blockSumFloat));
 
        TextView tvPersonalUnconfirmedProfit20block = (TextView) findViewById(R.id.tvPersonalUnconfirmedProfit20block);
        tvPersonalUnconfirmedProfit20block.setText(getString(R.string.str_block_stats_activity_personal_unconfirmed_profit_20_block) + " : " + String.format("%.7f",personalUnconfirmed20blockSumFloat));
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 17:22     Как лучше "повесить" обработчик событий на пункты списка, а потом отлавливать нажатие на них
Посмотрите здесь:

Как реализовать функцию "share via" в моем случае? Android
Обработчик событий для ImageButton Android
Как "слушать и читать" SMS c определенного номера? Android
Android При прокрутке listview изображения подгружаются, но происходит "скачок" списка
Обработчик событий в табхост Android
Обработчик событий для динамического Button Android
Android Как открывать/закрывать NavigationDrawer кнопкой "Menu"
Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер? Android
Android Как преобразовать время из long в формат "ДД.ММ.ГГГГ"?
Android Как сделать View "не прозрачным" для кликов
Android Как поставить обработчик на нажатие на изображение в пункте spinner?
Android Toolbar как отслеживать кнопку "стрелка назад"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
30.01.2014, 10:25     Как лучше "повесить" обработчик событий на пункты списка, а потом отлавливать нажатие на них #2
а чо нельзя в ListView кидать, и OnItemClick повесить
Yandex
Объявления
30.01.2014, 10:25     Как лучше "повесить" обработчик событий на пункты списка, а потом отлавливать нажатие на них
Ответ Создать тему
Опции темы

Текущее время: 15:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru