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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Несколько надписей на кнопке http://www.cyberforum.ru/android-dev/thread1599282.html
Можно ли добавить на кнопку многострочный текст с разными шрифтами/размером?
Android Проверка существования файла Надо проверять наличие файла в директории, где программа создаёт файлы по умолчанию. Файл существует, но exists его не видит. А openFileInput из этого файла содержимое получает. Может exists требует прописывать путь в отличие от openFileInput, тогда как прописать путь, если файл создаётся с помощью openFileOutput? String FILENAMEMusic = "MusicActiv.txt"; @Override protected void... http://www.cyberforum.ru/android-dev/thread1599265.html
Квадратный Layout Android
Как создать в XML разметке КВАДРАТНЫЙ layout, вычисление размеров можно задать алгоритмом: ставим height и width == match_parent, если height>width то height = width (layout квадратный и полностью влезает в родителя) в противном случае width = height (будет то же, что и выше, зависит от соотношения сторон родителя). Но как это всё реализовать в xml разметке layout?
Android Работа с ресурсами проекта
Получаю информацию о ресурсе с помощью Uri.parse("android.resource://test.app.package/drawable/filename"); как получить список имен ресурсов в библиотеке?
Android Приложение по подсчету площадей фигур http://www.cyberforum.ru/android-dev/thread1598688.html
Дорогие друзья! Может меня смеяться надо мной, но нужна срочно помощь... Написал приложение по подсчету площадей фигур, но оно не работает. Точнее не производит подсчета, оно просто есть... Короче, говоря, руки опустились.. Скажите что не так, и как исправить? package com.example.oblako.geometry; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import...
Android BackStack и Фрагменты Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из Фрагмента Б запускаю фрагмент В. Если добавлять каждый фрагмент в BackStack, то по кнопке "назад" мы с фрагмента В перейдём на Б, а с Б на А. Как сделать так, чтобы я перешёл с фрагмента Б на фрагмент В и во фрагменте В при нажатии на кнопку назад я вышел из программы? подробнее

Показать сообщение отдельно
Паблито
резкий
1890 / 1624 / 504
Регистрация: 12.05.2014
Сообщений: 5,849
Завершенные тесты: 1
03.12.2015, 14:22     Список с двумя полями
Цитата Сообщение от bastrakov Посмотреть сообщение
гы... ну давайте, человеки, придумайте теперь ОДИН экран и скролируемый список в полем ввода во второй колонке
не уверен что я правильно понял вызов, но вот
активити по минимуму, там же класс-модель для секции (имя, цена) и интерфейс...можно оставить так, а можно по разным файлам раскидать
Кликните здесь для просмотра всего текста
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
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
 
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.sectionRv);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setHasFixedSize(true);
        //
        ArrayList<MySection> list = new ArrayList<>(); // создаем список секций
        fillArrayWithRandomPrices(list); // заполняем его ценами и названиями, метод заглушка
        recyclerView.setAdapter(new MyAdapter(list)); // создаем наш адаптер и назначаем его на RecyclerView
    }
 
    private void fillArrayWithRandomPrices(ArrayList<MySection> list) {
        for (int i = 0; i < 25; i++) {
            MySection section = new MySection("Название секции " + i);
            section.setPrice(i * 100);
            list.add(section);
        }
    }
 
}
 
class MySection {
    private String sectionName;
    private int price;
 
    MySection(String name) {
        sectionName = name;
    }
 
    public int getPrice() {
        return price;
    }
 
    public void setPrice(int price) {
        this.price = price;
    }
 
    public String getSectionName() {
        return sectionName;
    }
 
    public void setSectionName(String value) {
        sectionName = value;
    }
}
 
interface ChangeListener {
    void onEditTextValueChanged(int pos, int price);
}


адаптер с холдером
Кликните здесь для просмотра всего текста
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
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
 
import java.util.ArrayList;
 
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements ChangeListener {
 
    private final ArrayList<MySection> list;
 
    public MyAdapter(ArrayList<MySection> list) {
        this.list = list;
    }
 
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
        return new ViewHolder(v, this);
    }
 
    @Override
    public void onBindViewHolder(ViewHolder holder, int pos) {
        holder.nameTextView.setText(list.get(pos).getSectionName());
        holder.priceEditText.setText(String.valueOf(list.get(pos).getPrice()));
    }
 
    @Override
    public int getItemCount() {
        return list.size();
    }
 
    @Override
    public void onEditTextValueChanged(int pos, int value) {
        list.get(pos).setPrice(value);
    }
 
    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnFocusChangeListener {
        private ChangeListener listener;
        public TextView nameTextView;
        public EditText priceEditText;
 
        public ViewHolder(View v, ChangeListener listener) {
            super(v);
            this.listener = listener;
            nameTextView = (TextView) v.findViewById(R.id.sectionName);
            priceEditText = (EditText) v.findViewById(R.id.sectionPrice);
            priceEditText.setOnFocusChangeListener(this);
        }
 
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            EditText et = (EditText) v;
            int changedPrice = Integer.parseInt(et.getText().toString());
            if (!hasFocus) listener.onEditTextValueChanged(getAdapterPosition(), changedPrice);
        }
    }
}


разметка для активити по минимуму что бы проверить, файл main_activity.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contentPanel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">
 
    <android.support.v7.widget.RecyclerView
        android:id="@+id/sectionRv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
</FrameLayout>

и разметка item-а для RecyclerView файл row.xml
Кликните здесь для просмотра всего текста
XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <EditText
        android:inputType="number"
        android:id="@+id/sectionPrice"
        android:layout_width="100dp"
        android:layout_height="48dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true" />
 
    <TextView
        android:id="@+id/sectionName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/sectionPrice"
        android:layout_toLeftOf="@+id/sectionPrice"
        android:layout_toStartOf="@+id/sectionPrice"/>
 
    <FrameLayout
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:background="#21212121"
        android:layout_height="0.5dp"/>
</RelativeLayout>

тоже не глался за красотой, кому надо сами переделаете
в поле с ценой можно вводить только цифры, проверок на точку не ставил, тоже для самостоятельного изучения

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