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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Проверка на существование массива http://www.cyberforum.ru/android-dev/thread1084606.html
Здравствуйте. есть такой код. ... for(int i=0; i<3; i++){ Log.d(ci+" ",label_str.toString().length()+""); // <- падает здесь с java.lang.NullPointerException } ...нужно проерить строки пустые или нет как быть?
Программирование Android Сериализация У меня есть ArrayList<ZoneView>; который я сериализую в функции onPause(); но при десериализации обратно из файла я получаю только поля протого типа(int), а ArrayList<CategoryForZone> путой, подскажите, как лучше сериализовать объекты типа ZoneView Поля классов: public class ZoneView implements Serializable{ private static final long serialVersionUID = 2952056031459050819L; //Поля... http://www.cyberforum.ru/android-dev/thread1084564.html
Работа с разными пакетами Программирование Android
Всем доброго дня. Подскажите ссылку - не смог найти нормального объяснения в гугле. Нужно реализовать чтобы в приложении было несколько пакетов и в зависимости от условия приложение выбирало нужный для работы, ну стандартный пример: com.site.name.pro com.site.name.free Соответственно могу ли я сделать папки layout-pro и layout-free чтобы подгружать разные xml для работы с каждым...
Программирование Android Не могу загрузить преференс
Здравствуйте! Записать в preferences получилось в классе public class MainActivity extends Activity А получить в этом классе не могу public class MyClass extends BroadcastReceiver Делаю это в методе onReceiver вот таким способом: link = ctx.getSharedPreferences("my_prefs", Context.MODE_PRIVATE).getString(SAVED_TEXT, "Exist"); link это переменная класса. Переменная SAVED_TEXT тоже в...
Программирование Android Не получается запустить приложение на реальном устройстве http://www.cyberforum.ru/android-dev/thread1084362.html
Я новичок в разработке ПО под данную ось сразу отмечу... Вообщем учусь и пытаюсь разобраться что и как кодить для андройд... впринципе уже разобрался основное что делать, но всё запускаю на эмуляторе, а хотелось бы и ради теста запустить написанное на реальном устройстве... у меня в наличии тел под андройд версии 4.1.2 читаю манулы разный..вроде всё написано просто: 1) кабель к ноуту 2)...
Программирование Android Переходы между активностями Допустим, есть главная активити, из которой по нажатию кнопки стартует ещё одна startActivity(intent), где intent задан явно. Из запущенной активити мне надо сделать переходы на любую из имеющихся активностей, в том числе ту, из которой она только что была запущена. Но в таком случае вызов startActivity для неё не прокатывает, т.к. в данном task просто создастся ещё один её экземпляр. А значит,... подробнее

Показать сообщение отдельно
zesen
122 / 85 / 1
Регистрация: 17.10.2010
Сообщений: 436

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

29.01.2014, 17:22. Просмотров 628. Ответов 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));
 
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru