我有一个填充ListView的活动,它正在运行。因为我使用标签ViewPager,我必须使用片段而不是活动。那么有人可以告诉我需要更改以从我的活动中创建片段(FragmentActivity不能在标签中使用)。
package com.basnijkamp.safanagendatest;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListSample extends Activity {
public final static String ITEM_TITLE = "title";
public final static String ITEM_CAPTION = "caption";
public Map<String,?> createItem(String title, String caption) {
Map<String,String> item = new HashMap<String,String>();
item.put(ITEM_TITLE, title);
item.put(ITEM_CAPTION, caption);
return item;
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
List<Map<String,?>> september2012 = new LinkedList<Map<String,?>>();
september2012.add(createItem("Electra Mining Africa 2012", "Johannesberg South Africa"));
september2012.add(createItem("MSV", "Brno Czech Republic"));
september2012.add(createItem("IMTS", "Chicago USA"));
september2012.add(createItem("AMB", "Stuttgart Germany"));
september2012.add(createItem("Den Teknise Messe", "Lillestrom Norway"));
september2012.add(createItem("ITM", "Plovdiv Bulgaria"));
List<Map<String,?>> oktober2012 = new LinkedList<Map<String,?>>();
oktober2012.add(createItem("BIMU", "Milan Italy"));
oktober2012.add(createItem("Matek", "Istanbul"));
oktober2012.add(createItem("TIB", "Bucharest Romania"));
oktober2012.add(createItem("Vienna Tec", "Vienna Austria"));
oktober2012.add(createItem("Euro Blech 2012", "Hanover Germany"));
oktober2012.add(createItem("Technica Massan", "Stockholm Sweden"));
List<Map<String,?>> november2012 = new LinkedList<Map<String,?>>();
november2012.add(createItem("JIMTOF", "Tokyo Japan"));
november2012.add(createItem("Metavak", "Gorinchem Netherlands"));
november2012.add(createItem("FABTECH", "Las Vegas USA"));
november2012.add(createItem("Prodex", "Basel Switzerland"));
november2012.add(createItem("EMAF 2012", "Porto Portugal"));
november2012.add(createItem("Manufact Indonesia", "Jakarta Indonesia"));
// create our list and custom adapter
SeparatedListAdapter adapter = new SeparatedListAdapter(this);
adapter.addSection("September 2012", new SimpleAdapter(this, september2012, R.layout.list_complex,
new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
adapter.addSection("Oktober 2012", new SimpleAdapter(this, oktober2012, R.layout.list_complex,
new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
adapter.addSection("November 2012", new SimpleAdapter(this, november2012, R.layout.list_complex,
new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
ListView list = new ListView(this);
list.setAdapter(adapter);
this.setContentView(list);
}
}
提前致谢
答案 0 :(得分:2)
我建议你扩展ListFragment - http://developer.android.com/reference/android/app/ListFragment.html。
所以从这个:
ListView list = new ListView(this);
list.setAdapter(adapter);
this.setContentView(list);
你应该这样做:
setListAdapter (adapter);
来自
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
- &GT;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
来自ListSample extends Activity
- &gt; ListSample extends ListFragment
如果需要更多细节,请告诉我,祝你好运