【发布时间】:2014-09-16 12:35:43
【问题描述】:
这是我的代码。我得到新数据,我需要刷新列表。我正在使用基本适配器来制作我的 listview 。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.listView1);
lv.setAdapter(new myAdapter(this));
}
class SingleRow{
String title;
String description;
int image ;
SingleRow(String title,String description, int image) {
this.title=title;
this.description=description;
this.image=image;
}
}
class myAdapter extends BaseAdapter{
ArrayList<SingleRow> list;
Context context;
myAdapter(Context c){
context=c;
list=new ArrayList<SingleRow>();
Resources res=c.getResources();
String[] titles=res.getStringArray(R.array.titiles);
String[] descriptions=res.getStringArray(R.array.descriptions);
int[] images={R.drawable.a1 ,R.drawable.a2,R.drawable.a3,R.drawable.a49};
for(int i =0; i<4;i++){
list.add(new SingleRow(titles[i], descriptions[i], images[i]));
}
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row= inflater.inflate(R.layout.custom_list_items, parent,false);
TextView title= (TextView) row.findViewById(R.id.title);
TextView description= (TextView) row.findViewById(R.id.desc);
ImageView image=(ImageView) row.findViewById(R.id.imageView1);
SingleRow temp= list.get(position);
title.setText(temp.title);
description.setText(temp.description);
image.setImageResource(temp.image);
return row;
}
我应该在哪里放置 notifyDataSetChanged() 或其他方法来刷新我的列表并显示新数据?
谢谢
【问题讨论】:
-
在“点击按钮”中 ... notifyDataSetChanged 不会帮助您 ... 因为您仅在 myAdapter 构造函数中更改
list内容 ...