2015-04-10 3 views
0

Hy, я новичок в android, и я пытаюсь создать ListView внутри фрагмента. У меня есть основной класс MainActivity extends FragmentActivity implements ActionBar.TabListener и несколько внутренних классов. Я использую public class PopulatePageAdapter extends FragmentPagerAdapter вернуть фрагмент мне нужно, и класс, представляющий мой фрагмент:ArrayAdapter сбой во фрагменте

public class usersList extends Fragment { 
    private List<User> usersList = new ArrayList<User>(); 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.list, container, false); 
     populateUsernameList(); 

     ArrayAdapter<User> adapter = new MyListAdapter(); 
     ListView list = (ListView)rootView.findViewById(R.id.listView); 
     Log.d("Q","QQ"); 
     list.setAdapter(adapter);//here my app fails 
     Log.d("Q","WW"); 
     return rootView; 
    } 

Это мой ArrayAdapter

private class MyListAdapter extends ArrayAdapter<User> { 
     public MyListAdapter() { 
      super(getActivity().getApplicationContext(), R.layout.contact_layout, usersList); 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      View userView = convertView; 
      if (userView == null) { 
       userView = MainMenuActivity.this.getLayoutInflater().inflate(R.layout.contact_layout, parent, false); 
      } 

      User user = usersList.get(position); 
      ImageView imageView = (ImageView) userView.findViewById(R.id.icon); 
      imageView.setImageResource(user.getProfilePictureId()); 

      TextView textView = (TextView) userView.findViewById(R.id.textViewCompleteName); 
      textView.setText(user.getFirstName() + " " + user.getLastName()); 
      return userView; 
     } 
    } 

Я имею в виду, что я не использую право на ArrayAdapter но Я не вижу другого способа использовать его.

ответ

0

Похоже, что вы не разбираете свои данные (userList) на свой адаптер. Может быть, посмотрите на это: http://www.vogella.com/tutorials/AndroidListView/article.html

Вы должны приложить данные к вам адаптер и разобрать ваш контекст, а также:

ArrayList<User> usersList; 
Context mContext; 
public MyListAdapter(Context context, ArrayList<User> myListViewData) { 
    this.mContext = context; 
    this.usersList = myListViewData; 
} 
0

Вы должны передать данные в адаптер

ArrayList<Data> data=new ArrayList<Data>(); 
data= getArguments().getParcelableArrayList("data"); 
adapter = new DataAdapter(getActivity(),data); 
listView.setAdapter(adapter); 
Смежные вопросы