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

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

Войти
Регистрация
Восстановить пароль
 
 
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
#1

Сложить числа из ListView - Программирование Android

11.09.2016, 22:10. Просмотров 939. Ответов 56
Метки нет (Все метки)

Есть список (ListView). С помощью SimpleAdapter формируется этот список, добавляются и удаляются записи. Записи состоят из чисел. Как мне сложить эти числа, чтоб общий результат выводился?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2016, 22:10     Сложить числа из ListView
Посмотрите здесь:

Сложить 2 цвета и установить цвет статус бар - Программирование Android
Есть цвет #f78536 и на него накладывается тень #1a000000. Какой будет результирующий цвет? Как это можно узнать? И как потом программно...

Как взять символы с DataPicker, что бы их сложить и вывести? - Программирование Android
Ребят, нужна помощь. Есть DataPicker, а также три переменных. 1) Intday = dayOfMonth; // день 2) Intmonth = monthOfYear; //месяц...

Кастомизация ListView - Программирование Android
Добрый день. Перерыл пол инета но так и не нашел нормальный мануал как можно скастомизировать ListView. Прошу не ругаться, реально не...

listview и touch - Программирование Android
Доброго дня. Нужно дополнить нажатия на listview - то есть при длинном нажатии на элемент списка еще должно просматриваться в какую...

Заполнение ListView из БД - Программирование Android
Есть одна активити, в ней 2 текстовых поля и кнопка, отправляющая содержимое этих полей как строку в БД. Есть другая активити, которая...

События ListView - Программирование Android
Здравствуйте! Вот программа; package com.example.freedom; import java.util.ArrayList; import java.util.HashMap; import...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 20:27  [ТС]     Сложить числа из ListView #21
Цитата Сообщение от OlegJV Посмотреть сообщение
олько не надо в ArrayList<Float> добавлять (ATTRIBUTE_NAME_TEXT, getString(R.string.name1) + " " + result + " м")
Код должен быть таким?
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
85
86
87
88
89
90
91
92
public class MainActivity extends Activity {
 
 
    TextView tvResult;
 
    private static final int CM_DELETE_ID = 1;
 
    final String ATTRIBUTE_NAME_TEXT = "text";
    final String ATTRIBUTE_NAME_IMAGE = "image";
 
    ListView lvSimple;
    SimpleAdapter sAdapter;
    ArrayList<Float> data;
    Map<String, Object> m;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tvResult = (TextView) findViewById(R.id.tvResult);
 
 
        data = new ArrayList<Map<String, Object>>();
 
 
 
        String[] from = { ATTRIBUTE_NAME_TEXT, ATTRIBUTE_NAME_IMAGE };
        int[] to = { R.id.tvText, R.id.ivImg };
 
        sAdapter = new SimpleAdapter(this, data, R.layout.item, from, to);
 
        lvSimple = (ListView) findViewById(R.id.lvSimple);
        lvSimple.setAdapter(sAdapter);
        registerForContextMenu(lvSimple);
 
 
 
 
    }
 
 
    public void onButtonClick(View v) {
        Intent intent = new Intent(this, Main2Activity.class);
        startActivityForResult(intent, 1);
 
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data2) {
        if (data2 == null) {
            return;
        }
        String name = data2.getStringExtra("name");
        String name2 = data2.getStringExtra("name2");
        float result = 0;
        float n1 = 0;
        float n2 = 0;
        n1 = Float.parseFloat(name);
        n2 = Float.parseFloat(name2);
        result = n1 * n2;
        m = new HashMap<String, Object>();
        m.put(ATTRIBUTE_NAME_TEXT, getString(R.string.name1) + " " + result + " м");
        m.put(ATTRIBUTE_NAME_IMAGE, R.drawable.ic_launcher);
        data.add(m);
        sAdapter.notifyDataSetChanged();
        int summa=0;
        for (int i=0;i<data.size();i++){
            summa = summa + data.get(i);
        }
            tvResult.setText(getString(R.string.name1) + " " + summa + " м");
 
    }
 
 
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, "Удалить");
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
           data.remove(acmi.position);
            sAdapter.notifyDataSetChanged();
            return true;
        }
        return super.onContextItemSelected(item);
    }
}
Добавлено через 2 часа 41 минуту
Цитата Сообщение от OlegJV Посмотреть сообщение
А если подумать, чему равно data.get(i)? Это что, число?
Цитата Сообщение от OlegJV Посмотреть сообщение
Потом все как и было:

for (int i = 0; i < data.size(); i ++){
* * *summa = summa + data.get(i);
}
Так получается что?
ExFau$t
262 / 237 / 43
Регистрация: 08.05.2012
Сообщений: 1,280
13.09.2016, 20:51     Сложить числа из ListView #22
Получается, что тебе нужно открывать книжки по программированию и читать их с самого начала.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 21:07  [ТС]     Сложить числа из ListView #23
Цитата Сообщение от ExFau$t Посмотреть сообщение
Получается, что тебе нужно открывать книжки по программированию и читать их с самого начала.
Спасибо огромное за совет. Именно за ним я сюда и пришёл. Я тоже всем такие советы даю, когда не знаю чем помочь.
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
13.09.2016, 21:41     Сложить числа из ListView #24
naven, сделай с помощью кастомного адаптера, который наследуется от baseadapter, хешмап как и enum убивает время,нервы и ресурсы
ExFau$t
262 / 237 / 43
Регистрация: 08.05.2012
Сообщений: 1,280
13.09.2016, 21:44     Сложить числа из ListView #25
REALIST07, увы, эти действия не помогут сложить тип int и string
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
13.09.2016, 21:46     Сложить числа из ListView #26
ExFau$t, эти действия помогут создать модель с нужными числами и строками и все будет разграничено и понятно
ExFau$t
13.09.2016, 22:12
  #27

Не по теме:

REALIST07, я то понимаю, но дом строится с фундамента, а не так, что крышу спёр где-то и пытается её приладить.

naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 22:32  [ТС]     Сложить числа из ListView #28
Цитата Сообщение от ExFau$t Посмотреть сообщение
Не по теме:
REALIST07, я то понимаю, но дом строится с фундамента, а не так, что крышу спёр где-то и пытается её приладить.
А бывает такое: и фундамент есть, и стены, разбираешься как крышу сделать, а бестолковые умники начинают советовать:"Иди фундамент заливай"
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 23:55     Сложить числа из ListView #29
Если человеку каждый вечер на ужин нужно яйцо на сковородке - это нормально. Если человек хранит в холодильнике месячный запас в 30 яиц - тоже ничего. Но если этот человек будет там же хранить еще и 30 сковородок, такого человека сочтут, мягко говоря, загадочным. Как бы еще попрозрачней намекнуть? Единственное, что тебе нужно хранить - это различные значения result. Их можно хранить в виде ArrayList<Float>. Если тебе надо выводить на экран не просто число result, а в виде getString(R.string.name1) + " " + result + " м", то это можно сделать непосредственно перед выводом на экран. Берешь значение result из ArrayList<Float> и добавляешь к нему нужные строки. Если речь идет о ListView, то это можно делать в кастомном адаптере. Картинку ic_launcher вообще можно встроить в разметку item для ListView. Сумма считается, как написано выше. Просто в ArrayList<Float> будут складываться именно float с float. Это нормально. А если пытаться к значению result прибавить картинку ic_launcher, а к ним потом строку R.string.name1 - это ненормально. Все ежики, с которыми я знаком, это понимают. Это все, что я могу сказать, если тебе нужна помощь. Если тебе надо полностью написать код - есть тема "Программы на заказ". Если теперь будет вопрос типа "и что?" - заранее отвечаю: и ничего.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
14.09.2016, 12:15  [ТС]     Сложить числа из ListView #30
OlegJV, то есть через simpleadapter это не получится сделать?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
14.09.2016, 14:46     Сложить числа из ListView #31
А в чем проблема адаптер сделать свой?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
14.09.2016, 14:49  [ТС]     Сложить числа из ListView #32
OlegJV, проблемы нет. Просто спросил получится через simpleadapter или нет.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
14.09.2016, 15:08     Сложить числа из ListView #33
Можно сделать все. Вопрос насколько это будет удобно и эффективно.

Добавлено через 8 минут
Например: вместо массива Float храним данные в виде ArrayList<String>, куда суем так настойчиво навязываемые тобой getString(R.string.name1) + " " + result + " м". Тогда для подсчета суммы надо будет парсить каждую строку выдирая из нее значение result. Типа, если мы знаем длину name1, для простоты - что-то типа Float.parseFloat(getString(R.string.name1).substring(10, getString(R.string.name1).length - 3)). Или регулярками. Но за такое надо руки отрывать. Оно тебе надо?

Добавлено через 1 минуту
Можно еще сначала добавлять каждый result в сумму, а только потом совать его в строку и добавлять в массив. Опять же тогда избыточные данные хранить будем.

Добавлено через 59 секунд
Наверняка кто-то еще способы придумает. Тебе предложили самый простой и очевидный.
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
14.09.2016, 15:14     Сложить числа из ListView #34
я все обсуждение не читал, может кто-то уже предлагал такое
почему бы просто не считать сумму одним проходом по листу или массиву, который передается в адаптер?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
14.09.2016, 15:22     Сложить числа из ListView #35
Паблито, ТС упорно хочет хранить данные в виде ArrayList<Map<String, Object>>(), где в String хранится конструкция getString(R.string.name1) + " " + result + " м". Мы не ищем легких путей.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
21.09.2016, 18:06  [ТС]     Сложить числа из ListView #36
Цитата Сообщение от OlegJV Посмотреть сообщение
Мы не ищем легких путей
Лёгкий путь это кастомный адаптер?

Добавлено через 6 минут
Цитата Сообщение от OlegJV Посмотреть сообщение
Можно еще сначала добавлять каждый result в сумму, а только потом совать его в строку и добавлять в массив.
а как тогда при удалении вычитать result из суммы, если в массиве они string?

Добавлено через 18 часов 9 минут
Цитата Сообщение от OlegJV Посмотреть сообщение
хочет хранить данные в виде ArrayList<Map<String, Object>>()
Если одни цифры хранить, не понятно будет что это за цифры.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
21.09.2016, 20:39     Сложить числа из ListView #37
Какие у тебя предложения?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
21.09.2016, 20:40  [ТС]     Сложить числа из ListView #38
OlegJV, да если бы у меня были предложения, я бы тут не спрашивал.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
21.09.2016, 21:24     Сложить числа из ListView #39
Тебе ответили. В твоем ArrayList просто офигеть как понятно, что за цифры...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2016, 21:29     Сложить числа из ListView
Еще ссылки по теме:

HeaderView в ListView - Программирование Android
View hv = ...; listView.addHeaderView(hv); таким образом создают заголовок в listview. обьясните каким образом можно создать View?...

ListView с датами - Программирование Android
Есть дата рождения(выбирается пользователем через DialogDatePicker), отталкиваясь от нее нужно рассчитать на перед расписание прививок по...

Разноцветный ListView - Программирование Android
Здравствуйте. Как можно сделать список ListView с разноцветными элементами? Например четные элементы красные, нечетные - зеленые.

Альтернатива ListView - Программирование Android
Использую ListView Но оказывается его нельзя использовать внутри ScrollView Подскажите какой есть аналог? Чтобы Вывести данные из...


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

Или воспользуйтесь поиском по форуму:
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
21.09.2016, 21:29  [ТС]     Сложить числа из ListView #40
OlegJV, ну допустим я все уберу ту "конструкцию", выводится список из цифр, например, 25, 35, 50. А как добавить текст, чтоб было понятно что это площадь 25 метров, 35 метров, 50 метров?
Yandex
Объявления
21.09.2016, 21:29     Сложить числа из ListView
Ответ Создать тему
Опции темы

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