我能够在ListView中的运行时添加字符串。但我只获取ListView中的最后一个字符串数据。它的原因是什么?这是我的代码。
for (GraphUser user : users) {
ArrayList<String> arr = new ArrayList<String>(Arrays.asList(user.getName()));
ArrayAdapter<String> str = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1,arr);
lv.setAdapter(str);
str.setNotifyOnChange(true);
}
答案 0 :(得分:1)
您的代码应该是这样的
ArrayList<String> arr = new ArrayList<String>
for (GraphUser user : users) {
(arr.add(user.getName()));
}
ArrayAdapter<String> str = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1,arr);
lv.setAdapter(str);
str.setNotifyOnChange(true);
答案 1 :(得分:0)
我认为您应该覆盖Adapter类并使用changeList方法更改列表:
public void changeList(ArrayList<String> objects){
this.objects = objects;
Collections.sort(objects);
notifyDataSetChanged();
}
对象:新的ArrayList
你应该覆盖getView方法:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_view_custom_layout, parent, false);
TextView textView = (TextView)rowView.findViewById(R.id.label);
textView.setText(objects.get(position));
}
return rowView;
}
list_view_custom_layout:自定义布局xml文件(包含一些布局和textView:在这种情况下为“标签”)
为我工作。
答案 2 :(得分:0)
终于得到了解决方案......像魅力一样工作......
ArrayList<String> arr = null;
arr = new ArrayList<String>();
for (GraphUser user : users) {
arr.add(user.getName());
}
ArrayAdapter<String> str = new ArrayAdapter<String>(
getBaseContext(),
android.R.layout.simple_list_item_1,
arr);
lv.setAdapter(str);
str.setNotifyOnChange(true);