Android ListView绑定到自定义类

时间:2011-06-16 14:24:11

标签: java android android-layout android-widget android-listview

我有一个从XML Layout创建的Custom ListView。我想将它绑定到我的自定义数据类。 如何将该类转换为ListAdapter并将布局绑定到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;
};

}

3 个答案:

答案 0 :(得分:4)

基于ListActivity创建一个Activity,并在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;
        }
    });
}

答案 1 :(得分:0)

检查一下。

Simple List Adapter

您可以搜索有关如何制作简单列表适配器的教程。这显示了将列表绑定到适配器的一种简单方法。你可以找到许多其他更高级的例子。

答案 2 :(得分:0)

您需要扩展ArrayAdapter类。 Here是一个很好的教程,它将向您展示如何覆盖正确的方法(尤其是getView()方法)。