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

Передать dialogInterface во View - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android IDE в Андроид http://www.cyberforum.ru/android-dev/thread1798669.html
Недавно увидел, что даже на простеньких JAVA телефонах была своя IDE. Теперь мне интересно, есть ли она на Андроид. И есть ли она с подстветкой синтаксиса, с поддержкой большого кол-ва языков (меня...
Программирование Android Поиск дистанции от девайса до wifi - точки Всем привет. Пытаюсь высчитать дистанцию от девайса до вайфай точки. Нашел формулу public double calculateDistance(double signal, double freq) { double exp = (27.55 - (20 * Math.log10(freq))... http://www.cyberforum.ru/android-dev/thread1798591.html
Googlemaps + onBackPressed Программирование Android
в общем откуда то взялась проблема... Имеется фрагмент №1 с картой с него переход на №2 с указанием точного "адреса ручками" во втором фрагменте при сохранении адреса вызывается private void...
Программирование Android Android fragment + recyclerView
Всем привет, помогите написать простой пример такой программы: Есть 1 активность (при запуске на ней отображен фрагмент1, в котором содержится recyclerView) При нажатии на елемент в RecyclerView...
Программирование Android Collapsingtoolbarlayout http://www.cyberforum.ru/android-dev/thread1798440.html
Имеется Collapsingtoolbarlayout, и в нем Toolbar, а второй элемент не ImageView как обычно в примерах, а вертикальный LinearLayout с несколькими TextView. Как можно разделить Title у Toolbar, чтобы...
Программирование Android Передача HTML как строки из Андроида на сервер Приложение андроида принимает html-строку, которую надо передать на сервер для парсинга. Собственно алгоритм приема html и его передачи на сервер работают. Но только в том случае, когда вместо... подробнее

Показать сообщение отдельно
fraley
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 322
25.08.2016, 20:08
Я сделал с тремя EditText, думаю остальные добавить не будет проблема.
Если мне не изменяет память, то такое решение poup window подсказал Паблито.
П.С. Для TextInputLayout нужно в gradle добавить compile 'com.android.support:design:24.2.0'

Popup Window:
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
public class PopupWindow {
 
    private static AlertDialog dialog;
    private static EditText edt_name;
    private static EditText edt_price;
    private static EditText edt_paid;
    private static ICommunicator listiner;
 
 
    public static AlertDialog create(final Context context) {
        final View view = View.inflate(context, R.layout.popup_window, null);
        dialog = new AlertDialog.Builder(context).setView(view).create();
        dialog.setCancelable(false);//Если не нужно модальное поведение диалога, удалить эту строку
        listiner =(ICommunicator) context;
        edt_name=(EditText)view.findViewById(R.id.edt_name);
        edt_price=(EditText)view.findViewById(R.id.edt_price);
        edt_paid=(EditText)view.findViewById(R.id.edt_paid);
        Button btn_add_house=(Button)view.findViewById(R.id.btn_add_house);
        Button btn_dismiss=(Button)view.findViewById(R.id.btn_dismiss);
 
        btn_dismiss.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();
            }
        });
 
        btn_add_house.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name=edt_name.getText().toString();
                String price=edt_price.getText().toString();
                String paid=edt_paid.getText().toString();
                if(TextUtils.isEmpty(name)||TextUtils.isEmpty(price)||TextUtils.isEmpty(paid)){
                    Toast.makeText(context, "Отсутствует один из параметров", Toast.LENGTH_SHORT).show();
                }
                else{
                    if(listiner !=null)
                        listiner.onResult(name,price,paid);
                    dialog.dismiss();
                }
            }
        });
        setStyle(dialog);
        return dialog;
    }
 
    private static void setStyle(AlertDialog dialog) {
        Window window = dialog.getWindow();
        WindowManager.LayoutParams wlp = window.getAttributes();
        wlp.gravity = Gravity.CENTER;
        window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        window.setAttributes(wlp);
    }
 
    public interface ICommunicator {
        void onResult(String name, String price, String paid);
    }
}
Main activity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class MainActivity extends AppCompatActivity implements PopupWindow.ICommunicator {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn=(Button)findViewById(R.id.btn);
 
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PopupWindow.create(MainActivity.this).show();
            }
        });
    }
 
    @Override
    public void onResult(String name, String price, String paid) {
        Toast.makeText(MainActivity.this, "Name:"+name+"\nPrice: "+price+"\nPaid:"+paid, Toast.LENGTH_SHORT).show();
    }
}
popup_window.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
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
<?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="match_parent"
    android:background="@drawable/rounded_popup_window"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:gravity="center"
        android:text="Добавить дом"/>
 
    <android.support.design.widget.TextInputLayout
        android:id="@+id/til_name"
        android:hint="Название"
        style="@style/MyTextInputLayout">
 
        <android.support.design.widget.TextInputEditText
            android:id="@+id/edt_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </android.support.design.widget.TextInputLayout>
 
    <android.support.design.widget.TextInputLayout
        android:id="@+id/til_price"
        android:hint="Цена"
        style="@style/MyTextInputLayout">
 
        <android.support.design.widget.TextInputEditText
            android:id="@+id/edt_price"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </android.support.design.widget.TextInputLayout>
 
    <android.support.design.widget.TextInputLayout
        android:id="@+id/til_paid"
        android:hint="Оплачено"
        style="@style/MyTextInputLayout">
 
        <android.support.design.widget.TextInputEditText
            android:id="@+id/edt_paid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </android.support.design.widget.TextInputLayout>
 
    <Button
        android:id="@+id/btn_add_house"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Добавить дом"/>
    <Button
        android:id="@+id/btn_dismiss"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Закрыть"/>
</LinearLayout>
rounded_popup_window.xml:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp" />
    <solid android:color="@color/colorPrimary" />
    <stroke
        android:width="1dp"
        android:color="#EEEEEE"/>
    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />
</shape>
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru