Клик по ListView в DialogFragment

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
rsdev
Сообщения: 22
Зарегистрирован: 11 фев 2015, 13:11

Клик по ListView в DialogFragment

Сообщение rsdev » 10 мар 2015, 09:04

Добрый день.
Столкнулся с проблемой краша приложения при клике на элементе ListView в диалоге DialogFragment.

Приведу упрощенный код приложения:

main.java: (вызываю диалог и передаю в него 2 переменные: для заголовка и для заполнения ListView)

public class SynonimDictionaryActivity extends ActionBarActivity {
DialogFragment dlg1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_synonim_dictionary);
dlg1 = new DialogSynonim();
dlg1.show(getFragmentManager(), "dlg1");
Bundle args = new Bundle();
args.putInt("position", position);
args.putStringArrayList("data", clickWordsSynonum);
dlg1.setArguments(args);
}
}


DialogSynonim.java (класс диалога, в котором показываю ListView)

public class DialogSynonim extends DialogFragment implements View.OnClickListener
{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.dialog_synonim, null);
listView = (ListView)v.findViewById(R.id.listView);
Integer position = getArguments().getInt("position");
data = getArguments().getStringArrayList("data");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.abc_action_menu_item_layout,data);
listView.setAdapter(adapter);
String word = adapter.getItem(position);
getDialog().setTitle(word);
}
}

В результате клика по строке в ListView получаю падение приложения, ошибку отловить так и не смог.
Подскажите, в какую сторону смотреть?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Клик по ListView в DialogFragment

Сообщение doter.ua » 10 мар 2015, 11:20

Логи посмотри когда падает приложение.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
rsdev
Сообщения: 22
Зарегистрирован: 11 фев 2015, 13:11

Re: Клик по ListView в DialogFragment

Сообщение rsdev » 10 мар 2015, 11:26

Логи следующие:
03-10 15:25:19.408 10397-10397/ru.rsdev.arrowproject E/InputEventReceiver﹕ Exception dispatching input event.
03-10 15:25:19.408 10397-10397/ru.rsdev.arrowproject E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback
03-10 15:25:19.428 10397-10397/ru.rsdev.arrowproject E/MessageQueue-JNI﹕ java.lang.NullPointerException

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Клик по ListView в DialogFragment

Сообщение Foenix » 10 мар 2015, 11:32

по ссылкам в подписи
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Клик по ListView в DialogFragment

Сообщение doter.ua » 10 мар 2015, 11:45

rsdev писал(а):Логи следующие:
03-10 15:25:19.408 10397-10397/ru.rsdev.arrowproject E/InputEventReceiver﹕ Exception dispatching input event.
03-10 15:25:19.408 10397-10397/ru.rsdev.arrowproject E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback
03-10 15:25:19.428 10397-10397/ru.rsdev.arrowproject E/MessageQueue-JNI﹕ java.lang.NullPointerException
Что за getArguments(), почему не юзаешь savedInstanceState, передаваемый в конструкторе.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
rsdev
Сообщения: 22
Зарегистрирован: 11 фев 2015, 13:11

Re: Клик по ListView в DialogFragment

Сообщение rsdev » 10 мар 2015, 12:21

Ошибка была в неверно созданном адаптере. Вместо R.layout.abc_action_menu_item_layout нужно было указать android.R.layout.simple_list_item_1 или подобный.
Foenix, спасибо за совет, только сегодня досмотрел вебинар.

Аватара пользователя
rsdev
Сообщения: 22
Зарегистрирован: 11 фев 2015, 13:11

Re: Клик по ListView в DialogFragment

Сообщение rsdev » 10 мар 2015, 12:22

getArguments - для получения данных, передаваемых в диалог из Activity

Ответить