使用ListView绑定ArrayList - Android

时间:2013-10-27 15:39:54

标签: android listview android-listview arraylist

我尝试在按下按钮ListView时将ArrayList(btnGetPost)绑定。我对Android编程非常非常新。现在我能够将Facebook群组帖子检索为JSON响应。然后我循环遍历此JSON对象并将所有消息添加到ArrayList

现在我的问题是,如何在ListView的{​​{1}}中显示所有消息。我是说如何将此button click绑定到ArrayList?请指出我正确的方向。

ListView

2 个答案:

答案 0 :(得分:1)

基本上,如果你的arraylist中有数据,

然后你可以将它放入适配器,它将数据加载到listview

中的视图

ListView和Adapter Basics它是如何工作的:

  1. ListView要求适配器“给我一个视图”(getView)列表中的每个项目
  2. 返回并显示新视图
  3. 因此,您可以尝试覆盖 BaseAdapter

    覆盖BaseAdapter的示例: 您只需注意getView方法即可。这几乎是适配器的本质。

    private class MyCustomAdapter extends BaseAdapter {
    
    
        private ArrayList mData = new ArrayList();
        private LayoutInflater mInflater;
    
        public MyCustomAdapter() {
            mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
    
        public void addItem(final String item) {
            mData.add(item);
            notifyDataSetChanged();
        }
    
        @Override
        public int getCount() {
            return mData.size();
        }
    
        @Override
        public String getItem(int position) {
            return mData.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            System.out.println("getView " + position + " " + convertView);
            ViewHolder holder = null;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.item1, null);
                holder = new ViewHolder();
                holder.textView = (TextView)convertView.findViewById(R.id.text);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder)convertView.getTag();
            }
            holder.textView.setText(mData.get(position));
            return convertView;
        }
    
    }
    

    然后,您只需对ListView view;

    执行以下操作即可
    view.setAdapter(myAdapter);
    

    此博客中有更详细的说明 http://android.amberfog.com/?p=296

    (这不是我的。我复制了示例代码和本页的一些解释)

答案 1 :(得分:0)

您可以通过适配器将数据绑定到ListView。在这种情况下,编写自己的ArrayAdapter派生的适配器会很有用。 您可以将数据引用保留为自定义适配器的成员。