Страница 1 из 2

Падает приложение

Добавлено: 21 май 2013, 01:31
Doc999tor
В activity, возвращающем данные в ListView, кнопка "Cancel"
@Override
public void onClick(View v) {
Intent iContent = new Intent ();
if (v.getId() == R.id.b_Cancel) {
setResult(CONSTANTS.CANCEL);
finish();
}
при ее нажатии падает приложение... почему?
вторая кнопка Save работает прилежно:
else if (v.getId() == R.id.b_Save) {
note.subject = etSub.getText().toString();
note.phoneNum = etPh.getText().toString();
iContent.putExtra("note", note);
setResult(CONSTANTS.SAVE, iContent);
finish();
}
LogCat возвращает строку из MainActivity - arrList.add((Note)data.getExtras().getSerializable("note"));

Спасибо
Виктор

Re: Падает приложение

Добавлено: 21 май 2013, 07:30
rezak90
может лог ошибок покажите?

Re: Падает приложение

Добавлено: 21 май 2013, 11:54
Foenix
rezak90 писал(а):может лог ошибок покажите?
да нет, вари кофе, так сойдет :lol:

Re: Падает приложение

Добавлено: 21 май 2013, 12:43
Doc999tor
rezak90 писал(а):может лог ошибок покажите?
пожалуйста
Untitled.jpg
Untitled.jpg (382.19 КБ) 10590 просмотров

Re: Падает приложение

Добавлено: 21 май 2013, 13:00
Foenix
ну, NullPointer - значит вашего объекта не существует, не создался.
А вообще логи не так показывают, иначе бы форум уже загнулся с таким скринами..

Re: Падает приложение

Добавлено: 21 май 2013, 13:00
Foenix
И код форматируют..

Re: Падает приложение

Добавлено: 21 май 2013, 13:02
rezak90
пробегайте дебагом и смотрите что в onActivityResult null

Re: Падает приложение

Добавлено: 21 май 2013, 13:03
Doc999tor
Foenix писал(а):ну, NullPointer - значит вашего объекта не существует, не создался.
А вообще логи не так показывают, иначе бы форум уже загнулся с таким скринами..
а как? с удовольствием научусь :)
и что значит: форматирование кода?

Re: Падает приложение

Добавлено: 21 май 2013, 13:12
Foenix
нажимаешь кнопку РЕдактор кода, пишешь соощение и форматируешь.
Остальное - посмотри как другие делают на форуме. Тут полно логов.

Re: Падает приложение

Добавлено: 21 май 2013, 13:24
Doc999tor
не совсем понял... Редактор кода - Eclipse?

но вернемся к вопросу, какой объект не создается? нажимая на cancel, я должен завершить окно с activity с помошью finish(); и вернуться к MainActivity с помощью setResult(CONSTANTS.CANCEL);
что я упускаю?

Re: Падает приложение

Добавлено: 21 май 2013, 13:33
KamiSempai
rezak90 писал(а):пробегайте дебагом и смотрите что в onActivityResult null
Дельный совет человеку который логи скриншотом выкладывает.

Re: Падает приложение

Добавлено: 21 май 2013, 13:40
rezak90
KamiSempai писал(а):
rezak90 писал(а):пробегайте дебагом и смотрите что в onActivityResult null
Дельный совет человеку который логи скриншотом выкладывает.
:D

Re: Падает приложение

Добавлено: 21 май 2013, 13:44
Doc999tor
KamiSempai писал(а):
rezak90 писал(а):пробегайте дебагом и смотрите что в onActivityResult null
Дельный совет человеку который логи скриншотом выкладывает.
:D
с дебаггером у меня непростые отношения
как это сделать?

Re: Падает приложение

Добавлено: 21 май 2013, 13:49
rezak90
Doc999tor писал(а):
KamiSempai писал(а):
rezak90 писал(а):пробегайте дебагом и смотрите что в onActivityResult null
Дельный совет человеку который логи скриншотом выкладывает.
:D
с дебаггером у меня непростые отношения
как это сделать?
выкладывайте код метода onActivityResult

Re: Падает приложение

Добавлено: 21 май 2013, 13:56
Doc999tor
public void onActivityResult(int reqCode, int resCode, Intent data) {
if (reqCode == CONSTANTS.NEW_NOTE) {
arrList.add((Note)data.getExtras().getSerializable("note"));
arrAdapt.notifyDataSetChanged();
}
if (reqCode == CONSTANTS.EDIT_NOTE) {
arrList.set(position, (Note) data.getExtras().getSerializable("note"));
}
}

Re: Падает приложение

Добавлено: 21 май 2013, 14:17
rezak90
Doc999tor писал(а):public void onActivityResult(int reqCode, int resCode, Intent data) {
if (reqCode == CONSTANTS.NEW_NOTE) {
arrList.add((Note)data.getExtras().getSerializable("note"));
arrAdapt.notifyDataSetChanged();
}
if (reqCode == CONSTANTS.EDIT_NOTE) {
arrList.set(position, (Note) data.getExtras().getSerializable("note"));
}
}
data или arrList или arrAdapt являются null

Re: Падает приложение

Добавлено: 21 май 2013, 14:25
Doc999tor
ок. скорее всего Intent data, но с другой стороны, разве data не должна быть null? звучит глупо, но нажатием Cancel я ничего не посылаю и закрываю activity...
как это правильно сделать? закрыть activity, ничего не сохраняя, и не получить data null
спасибо

Re: Падает приложение

Добавлено: 21 май 2013, 14:41
Mikhail_dev
Вам активность надо только открыть или открыть и получить результат ? Если первое, то метод startActivity, если второе, то ...
но с другой стороны, разве data не должна быть null? звучит глупо, но нажатием Cancel я ничего не посылаю и закрываю activity...
null - это некая неопределенность. если по логике и должно быть null, то какой смысл тогда тянуть данные с этой неопределенности?
data.getExtras().getSerializable("note")
[syntax=java]
public void onActivityResult(int reqCode, int resCode, Intent data) {
if (reqCode == CONSTANTS.NEW_NOTE) {
if ((data!=null)&&(data.getExtras()!=null)) {
arrList.add((Note)data.getExtras().getSerializable("note"));
}
arrAdapt.notifyDataSetChanged();
}
if (reqCode == CONSTANTS.EDIT_NOTE) {
if ((data!=null)&&(data.getExtras()!=null)) {
arrList.set(position, (Note) data.getExtras().getSerializable("note"));
}
}
}
[/syntax]
Вообще вопросы странные. Советую поучить саму Java. Android - это надстройка над Java, совершенно отдельный инструмент. Но что бы им пользоваться, надо знать Java.

Re: Падает приложение

Добавлено: 21 май 2013, 14:41
rezak90
раз данные никакие не возврщаются то data будет null в любом случае, просто нужно делать проверку на null

Re: Падает приложение

Добавлено: 21 май 2013, 14:54
Doc999tor
ок. я еще раз опишу требования приложения:
активность 2 - 2 кнопки: Save & Cancel
первая сохраняет и возвращает активность 1, вторая только возвращает не сохраняя

если жмем cancel, то intent не должен посылаться, верно? null он или не null, разве важно?
в активности 1 нужно что-то писать на случай нажатия кнопки отмены? ведь интент не посылается