Android ListView Привязка к пользовательскому классу - PullRequest
1 голос
/ 16 июня 2011

У меня есть Custom ListView, созданный из XML Layout. Я хочу связать это с моим классом пользовательских данных. Как мне преобразовать этот класс в 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 ]

4 голосов
/ 16 июня 2011

Создайте Activity на основе 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 голосов
/ 16 июня 2011

Вам необходимо расширить класс ArrayAdapter. Здесь - хороший учебник, который покажет вам, как переопределить правильные методы (особенно метод getView ()).

0 голосов
/ 16 июня 2011

Проверьте это.

Простой список адаптеров

Вы можете найти учебники о том, как сделать простой список адаптеров.Это показывает один простой способ привязки вашего списка к адаптеру.Вы можете найти множество других, даже более сложных примеров.

...