i'm trying to convert a listActivity into listFragment, It's all done in the adapter so i don't know what to return in the onCreateView :/ Here is the listActivity:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// if extending Activity
//setContentView(R.layout.activity_main);
// 1. pass context and data to the custom adapter
MyAdapter adapter = new MyAdapter(getListView().getContext(), generateData());
// if extending Activity 2. Get ListView from activity_main.xml
//ListView listView = (ListView) findViewById(R.id.listview);
// 3. setListAdapter
//listView.setAdapter(adapter); if extending Activity
setListAdapter(adapter);
}
private ArrayList<Model> generateData(){
ArrayList<Model> models = new ArrayList<Model>();
models.add(new Model("Group Title"));
models.add(new Model(R.drawable.star_icon,"Menu Item 1","1"));
models.add(new Model(R.drawable.star_icon,"Menu Item 2","2"));
models.add(new Model(R.drawable.star_icon,"Menu Item 3","12"));
return models;
}
so i don't know what to return in the onCreateView
If you are inheriting from ListFragment
, you do not need to implement onCreateView()
. Just as ListActivity
gives you a ListView
by default (if you do not call setContentView()
, ListFragment
gives you a ListView
by default (if you do not override onCreateView()
.
Move your code shown above into onViewCreated()
of your ListFragment
— which is called after onCreateView()
completes, and so you have your ListView
— and you should be set.
For example:
public class OtherFragment extends ListFragment {
private static final String[] items= { "lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer", "adipiscing", "elit", "morbi",
"vel", "ligula", "vitae", "arcu", "aliquet", "mollis", "etiam",
"vel", "erat", "placerat", "ante", "porttitor", "sodales",
"pellentesque", "augue", "purus" };
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, items));
}
}