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

Список с двумя полями - Android

Восстановить пароль Регистрация
 
 
umbrto
2 / 2 / 0
Регистрация: 04.02.2014
Сообщений: 71
02.12.2015, 05:15     Список с двумя полями #1
Доброго времени суток!
Мне необходимо создать список, который содержит название спорт секции(например) и поле стоимость, которую вводит пользователь.
Я умею создавать только простой список через ArrayAdapter, которому в параметрах передается массив, содержащий элементы списка.
А вот как создать список с двумя полями, при чем одно из них сделать так, что бы пользователь сам вводил значение?
Была догадка сделать это с помощью создания класса, в котором 2 поля: название и стоимость. После чего с помощью ArrayList преобразовать это в массив объектов и построить из него список.
Но тут же возникает ошибка в том, что поле "стоимость" прописное,а не вводимое с клавиатуры.
Надеюсь на вашу помощь.

Не по теме:

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



Добавлено через 14 минут
Также я знаю как создать поле в которое вводиться значение, но как его тогда связать с моим списком? Что бы каждой секции соответствовала определенная стоимость
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
я разве обижал разрабов сайтов магазинов?)
мне преподаватель сказал, что у меня еще легкое задание)
я все его слова в точности передал
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
15.12.2015, 19:01     Список с двумя полями #25
вангую что ТС описал задачу не так как ее поставил препод, так ведь?

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

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

Android JSOUP POST. В ответ вместо JSon приходит разметка страницы с полями для ввода данных
Отправка СМС в телефонах с двумя картами Android
Android Обмен сообщениями между двумя приложениями по сети
Android Передача данных между двумя телефонами Android + Content Provider
Android Singleton или класс с полями static?

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

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

Добавлено через 12 минут
то есть у меня в разметке для пункта списка есть поле TextView которое в проге я заполняю вручную
а надо что бы при каждом запуске программы это поле бралось из интернета.
как то вот так
Yandex
Объявления
15.12.2015, 20:35     Список с двумя полями
Ответ Создать тему
Опции темы

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