Вывод списка ArrayList переданный через интент в ListView
Всем привет. Возник такой вопрос:
Имеется фрагмент который передаёт String [] title = {"00.Глава1","01.Глава2",}в активность.
Передаю из Fragment:
Intent intent = new Intent(getActivity(), Activity1.class);
ArrayList<String> array = new ArrayList<>();
array.add(Arrays.toString(title));
intent.putExtra("title", array);
getActivity().overridePendingTransition (R.anim.open_next, R.anim.close_next);
startActivity(intent);
Получаю в активности Activity1:
Intent intent = getIntent();
ArrayList<String> title_array= (ArrayList<String>)
getIntent().getSerializableExtra("title");
Устанавливаю массив в ListView:
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, title_array.toArray(new String[0]));
listView.setAdapter(adapter);
Данные я получаю , и массив строк отображается , но не в виде списка listView. В чём я ошибаюсь, почему Activity1 не выводит массив в виде списка ?
Ответы (1 шт):
Я допускаю что вы не совсем правильно устанавливаете массив в виджет. Вот эта строка:
title_array.toArray(new String[0])
для меня лично выглядит как сеттинг в виджет списка с размером 0. Я могу конечно ошибаться, но вы можете проверить массив который приходит в активность и что получается после того как вы его конвертируете в такой массив, например выведите его в логи. Вот есть пример как использовать list и arraylist в нужном вам виджете:
List<String> your_array_list = new ArrayList<String>();
your_array_list.add("foo");
your_array_list.add("bar");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
lv.setAdapter(arrayAdapter);