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

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

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

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

11.09.2016, 22:10. Просмотров 933. Ответов 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...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExFau$t
245 / 220 / 42
Регистрация: 08.05.2012
Сообщений: 1,208
11.09.2016, 22:27     Сложить числа из ListView #2
Ну пройди по своему списку и сложи, используя оператор "+".
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
11.09.2016, 22:34  [ТС]     Сложить числа из ListView #3
Цитата Сообщение от ExFau$t Посмотреть сообщение
Ну пройди по своему списку и сложи, используя оператор "+".
Можно отсюда поподробнее?
ExFau$t
245 / 220 / 42
Регистрация: 08.05.2012
Сообщений: 1,208
11.09.2016, 22:44     Сложить числа из ListView #4
naven, у всех списков есть такой замечательный метод get(int), только эта информация передаётся из уст в уста, так что больше никому, я тебе по секрету сказал.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
int summa=0;
for (int i=0;i<list.size();i++){
summa=summa+list.get(i);
}
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
12.09.2016, 01:00  [ТС]     Сложить числа из ListView #5
Цитата Сообщение от ExFau$t Посмотреть сообщение
int summa=0;
for (int i=0;i<list.size();i++){
summa=summa+list.get(i);
}
в этом коде
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
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleAdapter;
 
public class MainActivity extends Activity {
 
  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<Map<String, Object>> data;
  Map<String, Object> m;
 
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    data = new ArrayList<Map<String, Object>>();
    for (int i = 1; i < 5; i++) {
      m = new HashMap<String, Object>();
      m.put(ATTRIBUTE_NAME_TEXT, "sometext " + i);
      m.put(ATTRIBUTE_NAME_IMAGE, R.drawable.ic_launcher);
      data.add(m);
    }
 
    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) {
    m = new HashMap<String, Object>();
    m.put(ATTRIBUTE_NAME_TEXT, "sometext " + (data.size() + 1));
    m.put(ATTRIBUTE_NAME_IMAGE, R.drawable.ic_launcher);
    data.add(m);
    sAdapter.notifyDataSetChanged();
  }
 
  @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);
  }
}
должно стоять после:
Java
1
2
3
4
5
6
7
  public void onButtonClick(View v) {
    m = new HashMap<String, Object>();
    m.put(ATTRIBUTE_NAME_TEXT, "sometext " + (data.size() + 1));
    m.put(ATTRIBUTE_NAME_IMAGE, R.drawable.ic_launcher);
    data.add(m);
    sAdapter.notifyDataSetChanged();
  }
я правильно понимаю?
Кстати на summa=summa+list.get(i); пишет, что оператор "+" не может использоваться для "int", как исправить?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
12.09.2016, 02:29     Сложить числа из ListView #6
Так записи все-таки состоят из чисел или Map<String, Object>?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
12.09.2016, 07:54  [ТС]     Сложить числа из ListView #7
Из map, но через putExtra передаются числа. Это я пример с интернета привел, свой на компе, а комп далеко.
ExFau$t
245 / 220 / 42
Регистрация: 08.05.2012
Сообщений: 1,208
12.09.2016, 10:09     Сложить числа из ListView #8
naven, напишешь ArrayList<Integer> или HashMap<Integer, Object>, неужели это так сложно?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 13:04  [ТС]     Сложить числа из ListView #9
Цитата Сообщение от ExFau$t Посмотреть сообщение
напишешь ArrayList<Integer> или HashMap<Integer, Object>, неужели это так сложно?
Написать не сложно, только всё равно ошибку выдаёт.

Добавлено через 3 минуты
Цитата Сообщение от ExFau$t Посмотреть сообщение
HashMap<Integer, Object>
Вот так?
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
    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;
        // создаем новый Map
        m = new HashMap<Integer, 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 + " м");
        }
 
    }
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 14:26     Сложить числа из ListView #10
А если подумать, чему равно data.get(i)? Это что, число?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 15:08  [ТС]     Сложить числа из ListView #11
Цитата Сообщение от OlegJV Посмотреть сообщение
А если подумать, чему равно data.get(i)? Это что, число?
Ну и?
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 15:47     Сложить числа из ListView #12
Да что ну и. Не число же это нифига, неужто непонятно.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 16:01  [ТС]     Сложить числа из ListView #13
Цитата Сообщение от OlegJV Посмотреть сообщение
неужто непонятно
Я имел ввиду какие варианты? Как мне сложить все числа?
Они приходят через putExtra умножаются и добавляются в отдельную строку, а как мне получить общий результат всех строк.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 16:29     Сложить числа из ListView #14
Java
1
getString(R.string.name1) + " " + result + " м"
вот эта конструкция зачем вообще?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 16:33  [ТС]     Сложить числа из ListView #15
Цитата Сообщение от OlegJV Посмотреть сообщение
вот эта конструкция зачем вообще?
Выводит результат на экран.
getString(R.string.name1 - это текст из string.xml
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 16:36     Сложить числа из ListView #16
Типа если у нас будет HashMap из 100500 элементов, в нем будет храниться 100500 одинаковых R.string.name1 и 100500 R.drawable.ic_launcher? Или я чего-то не понимаю, или твой HashMap элементарно заменяется ArrayList<Float>.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 16:44  [ТС]     Сложить числа из ListView #17
Цитата Сообщение от OlegJV Посмотреть сообщение
будет храниться 100500 одинаковых R.string.name1
Нет, Просто выводится Например Площадь result метров. где result - это выражение чисел, которые приходят через putExtra
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 16:53     Сложить числа из ListView #18
Ну как нет, если да. Ты же в каждый m их суешь. Я походу сдаюсь...

Добавлено через 1 минуту
Я извиняюсь, я ArrayList<Map<String, Object>> data имел в виду из 100500 элементов
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
13.09.2016, 17:01  [ТС]     Сложить числа из ListView #19
Ну так как сделать, чтоб общий результат вывести?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2016, 17:29     Сложить числа из ListView
Еще ссылки по теме:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
13.09.2016, 17:29     Сложить числа из ListView #20
Java
1
ArrayList<Map<String, Object>> data
заменить на
Java
1
ArrayList<Float> data
Потом все как и было:
Java
1
2
3
for (int i = 0; i < data.size(); i ++){
     summa = summa + data.get(i);
}
И только потом, после цикла:
Java
1
tvResult.setText(getString(R.string.name1) + " " + summa + " м");
Добавлено через 20 минут
Только не надо в ArrayList<Float> добавлять (ATTRIBUTE_NAME_TEXT, getString(R.string.name1) + " " + result + " м"). Что-то у меня подозрения какие-то...))). Подозрительное затишье...
Yandex
Объявления
13.09.2016, 17:29     Сложить числа из ListView
Ответ Создать тему
Опции темы

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