2011-11-02 50 views
4

我正在開發Android片段中的ListView。該類擴展了ListFragment。不能在ListFragment上使用SimpleAdapter

我試着用這個例子: http://www.heikkitoivonen.net/blog/2009/02/15/multicolumn-listview-in-android/

但問題是,如果類擴展ListFragment,將其改爲ListActivity將使SimpleAdapter的工作,構造SimpleAdapter沒有定義,但隨後申請不會。

下面的代碼:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 

    View tmp_view = inflater.inflate(R.layout.clients_list, container, false); 
    ListView list = (ListView) tmp_view.findViewById(R.id.list); 

    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 
    HashMap<String, String> map = new HashMap<String, String>(); 
    map.put("train", "101"); 
    map.put("from", "6:30 AM"); 
    map.put("to", "7:40 AM"); 
    mylist.add(map); 
    map = new HashMap<String, String>(); 
    map.put("train", "103(x)"); 
    map.put("from", "6:35 AM"); 
    map.put("to", "7:45 AM"); 
    mylist.add(map); 
    // ... 
    SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.clients_list_item, 
       new String[] {"train", "from", "to"}, new int[] {R.id.TRAIN_CELL, R.id.FROM_CELL, R.id.TO_CELL}); 
    list.setAdapter(mSchedule); 
    ListFragment.setListAdapter(mSchedule); 


    return tmp_view; 
} 

所以我不會有任何問題,如果這是一個活動,但它是一個片段:S任何解決方案?

+0

更換

SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, ... 

你有一組一個適配器已經,嘗試刪除ListFragment.setListAdapter(mSchedule);這條線。 –

+0

我知道,只是嘗試的東西,順便說一句問題是在SimpleAdapter行。構造函數未定義。我想解決這個問題,設置列表適配器是好的。謝謝btw。 – Michelh91

回答

5

ListFragment不是語境的一個子類,它的構造需要。試着用

SimpleAdapter mSchedule = new SimpleAdapter(getActivity(), mylist, ... 
相關問題