2015-04-18 3 views
-1

У меня есть ListView, который прекрасно работает внутри моего Fragment.Как создать пользовательский ListView внутри фрагмента?

public class MyFragment extends Fragment { 

    String[] itemname ={ "item 1", "item 2", "item 3"}; 

    ListView my_list; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

     View v = inflater.inflate(R.layout.fragment_example, container, false); 

     my_list = (ListView) v.findViewById(R.id.listView1); 
     ArrayAdapter<String> adapter = 
     new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, itemname); 

     my_list.setAdapter(adapter); 

     return v; 
     } 
} 

Поэтому, когда я пытаюсь установить его на мой обычаяListView, он возвращает NullPointerException.

ArrayAdapter<String> adapter = 
     new ArrayAdapter<String>(getActivity(), R.layout.custom_list, itemname); 

     list_poderes.setAdapter(adapter); 

Что здесь происходит? Как его реализовать?

+1

Похоже, вам нужен собственный адаптер, посмотрите на этот пост: http://stackoverflow.com/questions/2265661/how-to-use-arrayadaptermyclass/ 2265712 # 2265712 –

+0

Пожалуйста, разместите свой XML для R.layout.custom_list. – mikejonesguy

ответ

1

Вы не можете достичь этого, просто передав список в качестве идентификатора ресурса адаптера. Вы можете пройти следующие шаги.

  1. Создание пользовательского представления для строки списка.
  2. Определить пользовательский класс адаптера, расширенный базовым адаптером
  3. Надуть выше (01) в рамках метода getView().
  4. Подготовьте свою модель данных и перейдите в адаптер внутри вашего фрагмента.

Вы найдете подходящий пример here