将 listActivity 转换为 listFragment
convert listActivity into listFragment
我正在尝试将 listActivity 转换为 listFragment,这一切都在适配器中完成,所以我不知道在 onCreateView 中 return 做什么:/ 这是 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
如果您继承自 ListFragment
,则无需实现 onCreateView()
。正如 ListActivity
默认给你一个 ListView
(如果你不调用 setContentView()
,ListFragment
默认给你一个 ListView
(如果你不覆盖onCreateView()
.
将上面显示的代码移到 ListFragment
的 onViewCreated()
中——它在 onCreateView()
完成后调用,这样你就有了 ListView
—— 你应该设置。
例如:
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));
}
}
我正在尝试将 listActivity 转换为 listFragment,这一切都在适配器中完成,所以我不知道在 onCreateView 中 return 做什么:/ 这是 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
如果您继承自 ListFragment
,则无需实现 onCreateView()
。正如 ListActivity
默认给你一个 ListView
(如果你不调用 setContentView()
,ListFragment
默认给你一个 ListView
(如果你不覆盖onCreateView()
.
将上面显示的代码移到 ListFragment
的 onViewCreated()
中——它在 onCreateView()
完成后调用,这样你就有了 ListView
—— 你应该设置。
例如:
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));
}
}