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

Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 09:04
rsdev
Добрый день.
Столкнулся с проблемой краша приложения при клике на элементе 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 получаю падение приложения, ошибку отловить так и не смог.
Подскажите, в какую сторону смотреть?

Re: Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 11:20
doter.ua
Логи посмотри когда падает приложение.

Re: Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 11:26
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

Re: Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 11:32
Foenix
по ссылкам в подписи

Re: Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 11:45
doter.ua
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, передаваемый в конструкторе.

Re: Клик по ListView в DialogFragment

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

Re: Клик по ListView в DialogFragment

Добавлено: 10 мар 2015, 12:22
rsdev
getArguments - для получения данных, передаваемых в диалог из Activity