Интерфейс, диалоги, темы, стили, меню
-
ioann1
- Сообщения: 10
- Зарегистрирован: 02 апр 2013, 16:29
Сообщение
ioann1 » 02 апр 2013, 16:52
Добрый день.
Проблема в следующем - создаю диалоговое окно, наполнение диалога берется из xml файла. В диалоге присутствуют 2 EditText, в которые пользователь вводит данные. У диалога есть BUTTON_POSITIVЕ и при нажатии на нее я пытаюсь считать данные из EditText и записать их в public переменные того активити в котором создается диалог. Данные беру следующим образом:
Код: Выделить всё
OnClickListener myClickDialogListener = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case Dialog.BUTTON_POSITIVE:
//Вот здесь я пытаюсь записать полученные из EditText значения в переменные разного типа
add_value = Integer.parseInt(etAddValue.getText().toString());
add_text = etAddText.getText().toString();
db.addRec("Sex", R.drawable.ic_launcher, 12);
cursor.requery();
break;
case Dialog.BUTTON_NEGATIVE:
break;
}
}
};
Но приложение вылетает и в логах пишет:
Код: Выделить всё
04-02 13:48:46.732: E/AndroidRuntime(879): at ru.myproject.personal_accountant.TodayActivity$1.onClick(TodayActivity.java:238)
Буду благодарен за любую помощь.
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 апр 2013, 17:30
лог ошибок полностью приводите, а то в этой строчке не есть суть креша
R.id.team
Политика на форуме запрещена
-
ioann1
- Сообщения: 10
- Зарегистрирован: 02 апр 2013, 16:29
Сообщение
ioann1 » 02 апр 2013, 17:38
rezak90 писал(а):лог ошибок полностью приводите, а то в этой строчке не есть суть креша
04-02 13:48:34.051: E/Trace(879): error opening trace file: No such file or directory (2)
04-02 13:48:35.501: D/myLogs(879): Открыли подлючение к БД
04-02 13:48:35.553: D/myLogs(879): Today: onStart()
04-02 13:48:35.582: D/myLogs(879): Today: onResume()
04-02 13:48:35.711: I/Choreographer(879): Skipped 40 frames! The application may be doing too much work on its main thread.
04-02 13:48:35.891: D/dalvikvm(879): GC_CONCURRENT freed 132K, 10% free 2625K/2896K, paused 31ms+34ms, total 278ms
04-02 13:48:36.551: I/Choreographer(879): Skipped 757 frames! The application may be doing too much work on its main thread.
04-02 13:48:36.591: D/gralloc_goldfish(879): Emulator without GPU emulation detected.
04-02 13:48:38.005: I/Choreographer(879): Skipped 1107 frames! The application may be doing too much work on its main thread.
04-02 13:48:40.622: D/myLogs(879): Показался диалог
04-02 13:48:40.632: I/Choreographer(879): Skipped 584 frames! The application may be doing too much work on its main thread.
04-02 13:48:40.992: I/Choreographer(879): Skipped 196 frames! The application may be doing too much work on its main thread.
04-02 13:48:42.447: I/Choreographer(879): Skipped 65 frames! The application may be doing too much work on its main thread.
04-02 13:48:42.982: I/Choreographer(879): Skipped 68 frames! The application may be doing too much work on its main thread.
04-02 13:48:44.252: I/Choreographer(879): Skipped 201 frames! The application may be doing too much work on its main thread.
04-02 13:48:44.612: I/Choreographer(879): Skipped 53 frames! The application may be doing too much work on its main thread.
04-02 13:48:44.842: I/Choreographer(879): Skipped 34 frames! The application may be doing too much work on its main thread.
04-02 13:48:45.449: I/Choreographer(879): Skipped 65 frames! The application may be doing too much work on its main thread.
04-02 13:48:45.986: I/Choreographer(879): Skipped 65 frames! The application may be doing too much work on its main thread.
04-02 13:48:46.692: D/AndroidRuntime(879): Shutting down VM
04-02 13:48:46.692: W/dalvikvm(879): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-02 13:48:46.732: E/AndroidRuntime(879): FATAL EXCEPTION: main
04-02 13:48:46.732: E/AndroidRuntime(879): java.lang.NullPointerException
04-02 13:48:46.732: E/AndroidRuntime(879): at ru.myproject.personal_accountant.TodayActivity$1.onClick(TodayActivity.java:238)
04-02 13:48:46.732: E/AndroidRuntime(879): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
04-02 13:48:46.732: E/AndroidRuntime(879): at android.os.Handler.dispatchMessage(Handler.java:99)
04-02 13:48:46.732: E/AndroidRuntime(879): at android.os.Looper.loop(Looper.java:137)
04-02 13:48:46.732: E/AndroidRuntime(879): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-02 13:48:46.732: E/AndroidRuntime(879): at java.lang.reflect.Method.invokeNative(Native Method)
04-02 13:48:46.732: E/AndroidRuntime(879): at java.lang.reflect.Method.invoke(Method.java:511)
04-02 13:48:46.732: E/AndroidRuntime(879): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-02 13:48:46.732: E/AndroidRuntime(879): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-02 13:48:46.732: E/AndroidRuntime(879): at dalvik.system.NativeStart.main(Native Method)
04-02 13:49:18.252: I/Process(879): Sending signal. PID: 879 SIG: 9
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 апр 2013, 20:01
дело не в обработчике а скорее всего в неправильно построенном диалоге, показывайте как диалог строите
R.id.team
Политика на форуме запрещена
-
ioann1
- Сообщения: 10
- Зарегистрирован: 02 апр 2013, 16:29
Сообщение
ioann1 » 02 апр 2013, 20:06
rezak90 писал(а):дело не в обработчике а скорее всего в неправильно построенном диалоге, показывайте как диалог строите
Код: Выделить всё
@Override
protected Dialog onCreateDialog(int id){
if(id == DIALOG){
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setTitle("Добавить запись");
adb.setNegativeButton("Отмена", myClickDialogListener);
adb.setPositiveButton("Ок", myClickDialogListener);
view = (LinearLayout)getLayoutInflater().inflate(R.layout.dialog, null);
adb.setView(view);
dialog = adb.create();
return dialog;
}
return super.onCreateDialog(id);
}
//Обрабатываем нажатие на кнопки в диалоге
OnClickListener myClickDialogListener = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case Dialog.BUTTON_POSITIVE:
//Присваиваем значения
add_value = Integer.parseInt(etAddValue.getText().toString());
add_text = etAddText.getText().toString();
//Добавляем запись
db.addRec("Add", R.drawable.ic_launcher, 12);
cursor.requery();
break;
case Dialog.BUTTON_NEGATIVE:
Log.d(TAG, etAddText.getText().toString());
break;
}
}
};
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 апр 2013, 21:03
я так понял это у вас DialogFragment, контекст нужно активити getActivity() передавать а не this
R.id.team
Политика на форуме запрещена
-
neoksi
- Сообщения: 712
- Зарегистрирован: 26 июл 2012, 10:42
-
Контактная информация:
Сообщение
neoksi » 02 апр 2013, 21:04
Если кратко, то myClickDialogListener нужно поместить внутрь onCreateDialog и в нем определить ссылки на etAddValue и etAddText из генерируемого view диалога.