0

我的 android 应用程序中有一个listview对象,我使用我的自定义创建它,我想通过单击ArrayAdapter来获取现在是的任何对象的字段,但我不知道这样做listItemlistItem

我的Content课是:

public class Content {
    public String title;
    public String text;
    public int id;
    public Date date;
}

和我的ContentAdapter班级:

public class ContentAdapter extends ArrayAdapter<Content> {

    private ArrayList<Content> objects;

    public ContentAdapter(Context context, int textViewResourceId,
            ArrayList<Content> objects) {
        super(context, textViewResourceId, objects);
        this.objects = objects;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

        View v = convertView;

        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.content_list_item, null);
        }

        Content i = objects.get(position);

        if (i != null) {

            TextView tt = (TextView) v.findViewById(R.id.toptext);
            TextView ttd = (TextView) v.findViewById(R.id.toptextdata);
            TextView mt = (TextView) v.findViewById(R.id.middletext);
            TextView mtd = (TextView) v.findViewById(R.id.middletextdata);

            if (tt != null) {
                tt.setText("title");
            }
            if (ttd != null) {
                ttd.setText(i.title);
            }
            if (mt != null) {
                mt.setText("text:");
            }
            if (mtd != null) {
                mtd.setText(i.text);
            }
        }

        return v;

    }

}

现在我想通过单击列表项来获取日期和 ID,但不在列表视图中显示它们

我应该将 id 和 date 字段添加到我的自定义arrayAdapter类中吗?

4

1 回答 1

0

假设您的自定义适配器包含一个 Content 对象列表,您必须将 OnItemClickListener 添加到您的列表视图中,如下所示并获取单击的对象并检索属性。

  listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> adapterView, View view,
                        int position, long arg3) {
                    Content  content = (Content ) adapterView
                            .getItemAtPosition(position);
                    //from the content object retrieve the attributes you require.
                }

            });
于 2013-07-08T14:44:38.080 回答