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

Как запихнуть в DialogFragment список контролов? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получение своего местоположения на карте http://www.cyberforum.ru/android-dev/thread1309399.html
Здравствуйте. Есть небольшая проблема с получением своего местоположения на карте. Никак не могу понять, как это сделать. Что пробовал: private GoogleMap mMap; public void GoButtonClick(View...
Программирование Android Использованеи materialdesign Решил оформление приложения обновить под lollipop, поменял в android studio buildToolsVersion "21.0.2" поставил compile "com.android.support:appcompat-v7:21.0.2" Однако при создании темы <style... http://www.cyberforum.ru/android-dev/thread1309367.html
Программирование Android Потребление памяти программы
Можно ли получить потребление памяти текущей программы? Если да, то как?
Программирование Android Определить первый пустой элемент ArrayList
Есть ArrayList, там несколько элементов пустые, нужно определить самый первый, его индекс.
Программирование Android Не запускается эмулятор в Android Studio http://www.cyberforum.ru/android-dev/thread1309296.html
Всех приветствую! Последние пару недель занимаюсь установкой и настройкой Android Studio. На данный момент студия вроде бы нормально генерит проект типа "Hello world!", но запускать его в...
Программирование Android Трудоемкость проекта Сколько программистов нужно и сколка время займет написания программы (Серверную часть клиенскую веб, под ключь) на подобии Скайпа только без видеосвязи? Спасибо за ответы если таковы будут., подробнее

Показать сообщение отдельно
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.11.2014, 00:36
yotsi,

так а что надо-то туда запихнуть?

1. Создаёшь layout с контролами, которые хочешь чтобы были отображены в диалоге.
2. Создаёшь класс наследующий DialogFragment
3. Перегружаешь метод onCreateView этого класса, где проводишь всякие манипуляции по inflate и прочему нужному
4. Ну и создаешь его и показываешь где-надо...

Например из того, что под рукой
1.
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >
 
    <EditText
        android:id="@+id/etEditBarcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="XX999999999XX"
        android:maxLength="13"
     >
 
        <requestFocus />
    </EditText>
 
    <View
        android:layout_width="fill_parent"
        android:layout_height="2dp"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:background="#000000" >
    </View>
 
    <LinearLayout
        android:id="@+id/layout_button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
 
        <Button
            android:id="@+id/cbSaveChanges"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:text="Save" />
 
        <Button
            android:id="@+id/cbCancelChanges"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:text="Cancel" />
    </LinearLayout>
 
</LinearLayout>
2.-3. Наследуешь и перегружаешь
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
public class EDITBARDIALOG extends DialogFragment implements OnClickListener {
    
    private String barCodeNumber;
    private Button cbSaveChanges;
    private Button cbCancelChanges;
    private EditText etEditBarcode;
    
    EDITBARDIALOG(String barcode){
        barCodeNumber = barcode;
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                  Bundle savedInstanceState) {
                getDialog().setTitle("Edit Barcode");
                View v = inflater.inflate(R.layout.edit_barcode_dialog, null);
                v.findViewById(R.id.cbCancelChanges).setOnClickListener(this);
                
                cbSaveChanges = (Button) v.findViewById(R.id.cbSaveChanges);
                cbCancelChanges = (Button) v.findViewById(R.id.cbCancelChanges);
                etEditBarcode = (EditText) v.findViewById(R.id.etEditBarcode); 
                
                cbSaveChanges.setOnClickListener(this);
                cbCancelChanges.setOnClickListener(this);   
               
               etEditBarcode.setFilters( new InputFilter[] 
                                        {new InputFilter.AllCaps(), 
                                        new InputFilter.LengthFilter(13)});
               
               etEditBarcode.setText(barCodeNumber);
                        
               etEditBarcode.addTextChangedListener (new TextWatcher(){
 
                    @Override
                    public void beforeTextChanged(CharSequence s,
                            int start, int count, int after) {
                        // TODO Auto-generated method stub
                        
                    }
 
                    @Override
                    public void onTextChanged(CharSequence s, int start,
                            int before, int count) {
                        // TODO Auto-generated method stub
                        
                    }
 
                    @Override
                    public void afterTextChanged(Editable s) {
                        // TODO Auto-generated method stub
                        cbSaveChanges.setEnabled(UTILS.checkBarCode(s.toString()));
                    }
 
                    
                    
                });
                
                return v;
              };
    
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        String newBarCode = etEditBarcode.getText().toString(); 
        switch (v.getId()){
        case R.id.cbSaveChanges:
            if (newBarCode.compareTo(barCodeNumber)==0) 
                {
                    this.dismiss();
                    return;
                }
            DataLayer.UpdateBarcode(barCodeNumber, newBarCode);
            ((MainActivity) this.getActivity()).refreshListViewData();
            this.dismiss();
            break;
        case R.id.cbCancelChanges:
            this.dismiss();
            
        }
    }
}

4. Ну и там где надо создаешь экземпляр и показываешь (у меня из MainActivity (extends Activity) ):
Java
1
2
EDITBARDIALOG dlgEditBarDialog = new EDITBARDIALOG(barcodeValue);
dlgEditBarDialog.show(getFragmentManager(), "dlgEditBarDialog");
Вообщем, фактически ничем не отчается от работы с Activity.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru