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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Получение своего местоположения на карте http://www.cyberforum.ru/android-dev/thread1309399.html
Здравствуйте. Есть небольшая проблема с получением своего местоположения на карте. Никак не могу понять, как это сделать. Что пробовал: private GoogleMap mMap; public void GoButtonClick(View view) { mMap.getMyLocation(); } Данный способ крашится при вызове в программе по нажатию на кнопку.
Android Использованеи materialdesign Решил оформление приложения обновить под lollipop, поменял в android studio buildToolsVersion "21.0.2" поставил compile "com.android.support:appcompat-v7:21.0.2" Однако при создании темы <style name="AppThemeMaterial" parent="android:Theme.Material"> <!-- Customize the Material elements here --> </style> выдает такую ошибку - android:Theme.Material requires API level 21... 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!", но запускать его в эмуляторе не хочет. После запуска пишет в логе C:\Android\android-sdk\tools\emulator.exe -avd Default_Nexus_5 -netspeed full -netdelay none и больше ничего не происходит. Никакого окна с эмуляцией не...
Android Трудоемкость проекта Сколько программистов нужно и сколка время займет написания программы (Серверную часть клиенскую веб, под ключь) на подобии Скайпа только без видеосвязи? Спасибо за ответы если таковы будут., подробнее

Показать сообщение отдельно
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.11.2014, 00:36     Как запихнуть в DialogFragment список контролов?
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.
 
Текущее время: 17:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru