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

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

Войти
Регистрация
Восстановить пароль
 
 
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
#1

Список с двумя полями - Программирование Android

02.12.2015, 05:15. Просмотров 697. Ответов 25
Метки нет (Все метки)

Доброго времени суток!
Мне необходимо создать список, который содержит название спорт секции(например) и поле стоимость, которую вводит пользователь.
Я умею создавать только простой список через ArrayAdapter, которому в параметрах передается массив, содержащий элементы списка.
А вот как создать список с двумя полями, при чем одно из них сделать так, что бы пользователь сам вводил значение?
Была догадка сделать это с помощью создания класса, в котором 2 поля: название и стоимость. После чего с помощью ArrayList преобразовать это в массив объектов и построить из него список.
Но тут же возникает ошибка в том, что поле "стоимость" прописное,а не вводимое с клавиатуры.
Надеюсь на вашу помощь.

Не по теме:

Я не прошу вас писать за меня код программы, я САМ хочу ее написать, просто необходимо с кем то консультироваться. Благодарю за понимание.



Добавлено через 14 минут
Также я знаю как создать поле в которое вводиться значение, но как его тогда связать с моим списком? Что бы каждой секции соответствовала определенная стоимость
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2015, 05:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Список с двумя полями (Программирование Android):

Singleton или класс с полями static? - Программирование Android
Собственно вопрос в названии темы. Задача в следующем, пишу приложение, и мне нужно некоторое количство глобальных переменных носящих...

JSOUP POST. В ответ вместо JSon приходит разметка страницы с полями для ввода данных - Программирование Android
Делаю пост запрос к апи сайта. Назад должен получить json, однако получаю разметку страницы с полями для ввода данных. Т.е. как будто...

Определите новый класс Student с двумя закрытыми полями полями: name и sumb - C#
Я очередной студент, которые вам, полагаю, очень надоели, но все же я очень надеюсь на вашу помощь. Задание 4. Массивы Объектов. ...

Определить класс Student с двумя закрытыми полями полями: name и sumb - C#
Всем доброго дня. Помогите пожалуйста довести код до ума. Я что то никак не разберусь. Вот задание: 1. Создайте новое консольное...

Класс с двумя полями - C++
подскажите class classrod { protected: float a; public: classrod():a(0){} // конструктор...

Создать класс с двумя полями и конструктором - C++
Напишите пожалуйста класс содержащий два поля: фирма машины(строка), цена(число); конструктор и методы ввода/вывода. Мой зачет в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
03.12.2015, 19:26 #16
Паблито, согласен по всем пунктам, спасибо.
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
05.12.2015, 23:18  [ТС] #17
Паблито, я конечно извиняюсь, но у меня выдает ошибки при попытке запустить ваш код.
Ругается на кучу строк(одни из них):
Java
1
2
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Пишет "Cannot resolve symbol RecyclerView"
На сколько я понимаю, это у меня где то в SDK не установлено что то?

Добавлено через 5 часов 26 минут
Или таргет версия не та?

Добавлено через 6 минут
а все разобрался!
Ivan Ivanovi4
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 2
06.12.2015, 01:32 #18
Тс в лс отпиши
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
06.12.2015, 03:55  [ТС] #19
Я только в этом топике узнал о recyclerView
Поэтому есть вопрос. В ListView был метод позволяющий из массива создать список asList() помоему.
А как в RecyclerView сделать, что бы элементы списка брались из массива? Через ArrayList?

Добавлено через 8 минут
И также у ListView был поиск, а как организовать поиск в RecycleView?
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
12.12.2015, 14:25  [ТС] #20
сори ребят уже во всем разобрался
всем кто пытался помочь по +
Спасибо!
MisterMr
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 41
12.12.2015, 14:32 #21
umbrto, Запихни все активити в фрагменты и работай с одной активити, основной. Еще вариант - статичная публичная переменная ( массив, или что тебе там нужно ) и импорт нужного класса

Добавлено через 3 минуты
umbrto, перепили listview, как вариант - допили диалоговое окно по клику на элемент в которое будет вводиться значение нужное тебе
ps Предыдущий пост относился к раннему сообщению, не заметил 2й страницы
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
15.12.2015, 13:59  [ТС] #22
ребят а подскажите пожалуйтса
вот есть приложуха моя с товарами ценами и картинками
и надо что бы цены брались из инета,а не выставлялись в конструкторе
что для этого сделать надо?
item.xml(разметка для элемента списка)
Кликните здесь для просмотра всего текста
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
<CheckBox
 android:id="@+id/cbBox"
 android:layout_width="wrap_content"
  android:textColor="#FFFFFF"
 android:layout_height="wrap_content">
</CheckBox>
<LinearLayout
 android:id="@+id/linearLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_marginLeft="5dp"
 android:layout_weight="1"
 android:orientation="vertical">
<TextView
 android:id="@+id/tvDescr"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:textColor="#FFFFFF"
 android:layout_marginTop="5dp"
 android:text=""
 android:textSize="12sp">
</TextView>
<TextView
android:id="@+id/tvPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"/>
</LinearLayout>
<ImageView
 android:id="@+id/ivImage"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/ic_launcher">
</ImageView>
</LinearLayout>


и адаптер, который это все преобразует
BoxAdapter.java
Кликните здесь для просмотра всего текста
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
93
94
95
96
97
package com.sumovskyi.korzinaapp;
 
        import java.util.ArrayList;
        import android.content.Context;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.CheckBox;
        import android.widget.CompoundButton;
        import android.widget.CompoundButton.OnCheckedChangeListener;
        import android.widget.ImageView;
        import android.widget.TextView;
 
        public class BoxAdapter extends BaseAdapter {
        Context ctx;
        LayoutInflater lInflater;
        ArrayList<Product> objects;
 
        BoxAdapter(Context context, ArrayList<Product> products) {
        ctx = context;
        objects = products;
        lInflater = (LayoutInflater) ctx
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
 
        // кол-во элементов
        @Override
        public int getCount() {
        return objects.size();
        }
 
        // элемент по позиции
        @Override
        public Object getItem(int position) {
        return objects.get(position);
        }
 
        // id по позиции
        @Override
        public long getItemId(int position) {
      return position;
        }
 
        // пункт списка
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
      // используем созданные, но не используемые view
      View view = convertView;
        if (view == null) {
        view = lInflater.inflate(R.layout.item, parent, false);
        }
 
        Product p = getProduct(position);
 
        // заполняем View в пункте списка данными из товаров: наименование, цена
        // и картинка
        ((TextView) view.findViewById(R.id.tvDescr)).setText(p.name);       
        ((TextView) view.findViewById(R.id.tvPrice)).setText(p.price + "");
        //((TextView) view.findViewById(R.id.tvVal)).setText(p.val);
        ((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.image);
 
        CheckBox cbBuy = (CheckBox) view.findViewById(R.id.cbBox);
        // присваиваем чекбоксу обработчик
        cbBuy.setOnCheckedChangeListener(myCheckChangList);
        // пишем позицию
        cbBuy.setTag(position);
        // заполняем данными из товаров: в корзине или нет
        cbBuy.setChecked(p.box);
        return view;
       }
 
      // товар по позиции
      Product getProduct(int position) {
       return ((Product) getItem(position));
      }
 
       // содержимое корзины
       ArrayList<Product> getBox() {
         ArrayList<Product> box = new ArrayList<Product>();
       for (Product p : objects) {
      // если в корзине
         if (p.box)
        box.add(p);
        }
        return box;
      }
  
  // обработчик для чекбоксов
  OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView,
        boolean isChecked) {
      // меняем данные товара (в корзине или нет)
      getProduct((Integer) buttonView.getTag()).box = isChecked;
    }
  };
}

как это сделать можно?

Добавлено через 2 часа 7 минут
точнее не так
мне надо в маинактивити создать метод, который будет делать запрос в гугл по моему товару, потом переходить на эту страницу и из html этой страницы "вытаскивать" цену продукта
вот как такое реализовать ?
а то погуглил и всего 1 статью нашел схожей тематики, но там все равно не то
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
15.12.2015, 16:37 #23
Вы хотите сделать аналог yandex.market? не, похвально.
найдите на youtube доклад одного из разработчиков, о том, как они решали проблемы вытаскивания цены с разных сайтов. это заняло у команды вроде год. :-)

возьмите библиотеку org.jsoup.Jsoup, разберитесь, и... постарайтесь не использовать нецензурных слов по поводу разработчиков сайтов магазинов. :-)
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
15.12.2015, 18:58  [ТС] #24
я разве обижал разрабов сайтов магазинов?)
мне преподаватель сказал, что у меня еще легкое задание)
я все его слова в точности передал
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
15.12.2015, 19:01 #25
вангую что ТС описал задачу не так как ее поставил препод, так ведь?

наверняка там небыло "создать метод, который будет делать запрос в гугл по моему товару, потом переходить на эту страницу и из html этой страницы "вытаскивать" цену продукта"

думаю стояла задача просто парсить какой-нибудь магазин...один
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
15.12.2015, 20:35  [ТС] #26
та мне бы хотя бы разобраться что такое парсить и как это реализовывать? если можешь - помоги плз
просто я не понимаю как можно взять только поле цена из интернет магазина и как сделать так что бы искало по моему названию товара?

Добавлено через 12 минут
то есть у меня в разметке для пункта списка есть поле TextView которое в проге я заполняю вручную
а надо что бы при каждом запуске программы это поле бралось из интернета.
как то вот так
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2015, 20:35
Привет! Вот еще темы с ответами:

Реализовать класс с двумя скрытыми полями first и second - C++
В с++ только начал разбираться, прошу помощи в решении задач. Задание: ООП – Задание № 1 Реализовать класс с двумя скрытыми полями...

Реализовать класс с двумя скрытыми полями first и second - C++
Ребят, помогите решить задачку: (заранее спасибо:)) Сама задачка: Реализовать класс с двумя скрытыми полями first и second. Во классе...

Массив из структур с двумя целочисленными полями - C++
Я попытался написать программу, определяющую массив из структур с двумя полями, содержащими 5 элементов. Ввод значений элементов с консоли....

Структура с двумя полями и одной функцией. Episode 2. - C++
Напишите программу, в которой используется структура с двумя полями и одной функцией. Оба поля имеет тип int. Функция структуры...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.12.2015, 20:35
Ответ Создать тему
Опции темы

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