Не могу получить данные из EditText, находящихся в диалоге

Интерфейс, диалоги, темы, стили, меню
Ответить
ioann1
Сообщения: 10
Зарегистрирован: 02 апр 2013, 16:29

Не могу получить данные из EditText, находящихся в диалоге

Сообщение 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
Контактная информация:

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение rezak90 » 02 апр 2013, 17:30

лог ошибок полностью приводите, а то в этой строчке не есть суть креша
R.id.team
Политика на форуме запрещена

ioann1
Сообщения: 10
Зарегистрирован: 02 апр 2013, 16:29

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение 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
Контактная информация:

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение rezak90 » 02 апр 2013, 20:01

дело не в обработчике а скорее всего в неправильно построенном диалоге, показывайте как диалог строите
R.id.team
Политика на форуме запрещена

ioann1
Сообщения: 10
Зарегистрирован: 02 апр 2013, 16:29

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение 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
Контактная информация:

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение rezak90 » 02 апр 2013, 21:03

я так понял это у вас DialogFragment, контекст нужно активити getActivity() передавать а не this

Код: Выделить всё

AlertDialog.Builder(getActivity());
R.id.team
Политика на форуме запрещена

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Не могу получить данные из EditText, находящихся в диало

Сообщение neoksi » 02 апр 2013, 21:04

Если кратко, то myClickDialogListener нужно поместить внутрь onCreateDialog и в нем определить ссылки на etAddValue и etAddText из генерируемого view диалога.

Ответить