2011-06-16 122 views
1

我有從XML佈局創建的自定義ListView。我想將它綁定到我的自定義數據類。 如何將該類轉換爲ListAdapter並將佈局綁定到ListView。類的代碼如下:Android ListView綁定到自定義類

public class Sessions { 

private int status; 
private List<Session> sessions; 

public int getStatus() { 
    return status; 
} 

public void setStatus(int status) { 
    this.status = status; 
} 

public List<Session> getSessions() { 
    return sessions; 
} 

public void setSessions(List<Session> sessions) { 
    this.sessions = sessions; 
} 

public static class Session { 
    public Boolean active; 
    public String contributor_covu_id; 
    public String created_at; 
    public String key; 
    public String status; 
    public String name; 
    public String type; 
}; 

}

回答

4

根據ListActivity創建一個活動,並使用類似下面的onCreate中的內容。它將爲每一行製作一個簡單的兩行佈局的列表,並將文本設置爲會話名稱和會話狀態。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final List<Sessions.Session> sessions = new Sessions().getSessions(); 
    setListAdapter(new BaseAdapter() { 

     public int getCount() { 
      return sessions.size(); 
     } 

     public Object getItem(int pos) { 
      return sessions.get(pos); 
     } 

     public long getItemId(int pos) { 
      return pos; 
     } 

     public View getView(int pos, View view, ViewGroup viewGroup) { 
      if (view == null) { 
       view = View.inflate(ViewTest.this, android.R.layout.two_line_list_item, null); 
      } 

      Sessions.Session session = (Sessions.Session) getItem(pos); 

      TextView text = (TextView) view.findViewById(android.R.id.text1); 
      text.setText(session.name); 

      text = (TextView) view.findViewById(android.R.id.text2); 
      text.setText(session.status); 
      return view; 
     } 
    }); 
} 
0

檢查了這一點。

Simple List Adapter

您可以搜索就如何使一個簡單的列表適配器教程。這顯示了將列表綁定到適配器的一種簡單方法。你可以找到更多更高級的例子。

0

您需要擴展ArrayAdapter類。 Here是一個很好的教程,它將向您展示如何覆蓋正確的方法(特別是getView()方法)。