Personnalisé ArrayAdapter dans un ListFragment

Je suis en train de créer un personnalisé ArrayAdapter pour mon ListFragment. Maintenant rien n'est affiché dans la ListFragment sauf pour le TextView de dire ce que le numéro de Fragment, il est. J'ai mis un point d'arrêt dans getView() méthode de ma carte et il n'est pas appelée. J'ai cherché pour des raisons qui ne serait pas appelé et certaines personnes semblent penser que mon ListView est caché, donc j'ai essayé de changer les layout_height à wrap_content, mais cela ne fonctionne pas.

Aussi, j'ai été à la suite du code à partir de ce développeur: http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

ListFragment:

public class HomeFragment extends ListFragment implements FragmentTitle
{
private int mNum = 0;
private String mTitle = "Home";
private ListView mListView;
private MyArrayAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
mNum = getArguments() != null ? getArguments().getInt("num") : 1;
InfoContainer temp = new InfoContainer("test1", "test2");
mAdapter = new MyArrayAdapter(getActivity(), android.R.id.list, temp);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
View v1 = inflater.inflate(R.layout.fragment_pager_list, container, false);
TextView tv = (TextView) v1.findViewById(R.id.text);
tv.setText("Fragment #" + mNum);
mListView = (ListView) v1.findViewById(android.R.id.list);
return v1;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) 
{
super.onActivityCreated(savedInstanceState);
mListView.setAdapter(mAdapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) 
{
Log.i("HomeFragment", "Item clicked: " + id);
}
public CharSequence getTitle() 
{
return mTitle;
}
}

ArrayAdapter:

public class MyArrayAdapter extends ArrayAdapter<InfoContainer>
{
Context mContext;
InfoContainer data;
public MyArrayAdapter(Context context, int textViewResourceId, InfoContainer temp) 
{
super(context, textViewResourceId);
mContext = context;
this.data = temp;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
ViewHolder holder = new ViewHolder();
if(row == null)
{
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
row = inflater.inflate(R.id.pager, parent, false);
holder.v1 = (TextView) row.findViewById(R.id.listview_name);
holder.v2 = (TextView) row.findViewById(R.id.listview_data);
row.setTag(holder);
}
else
{
holder = (ViewHolder) row.getTag();
}
InfoContainer info = data;
holder.v1.setText(info.name);
holder.v2.setText(info.text);
return row;
}
public static class ViewHolder
{
TextView v1;
TextView v2;
}
}

fragment_pager_list.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000" >
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@string/hello_world"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FFFFFF" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:background="@drawable/listview_background"
android:textColor="#FFFFFF" />

J'ai fait des ArrayAdapters avant sans problème, donc, il y a quelque chose qui m'échappe à propos de les amener à travailler avec un ListFragment?

OriginalL'auteur trevor-e | 2012-07-01