【发布时间】:2012-09-09 07:36:27
【问题描述】:
我正在寻找使用刷新按钮刷新列表视图数据.. DES:在我的应用程序中有刷新按钮,当我点击它时来自服务器的列表视图数据必须刷新并显示更新列表视图数据。
我不知道该怎么做。请给我举个例子..提前谢谢。下面是我的代码。
Mainactivity.java
listView = (ListView) findViewById(R.id.homelistView);
listView.setTextFilterEnabled(true);
final EfficientAdapter objectAdapter = new EfficientAdapter(this);
listView.setAdapter(objectAdapter);
Button refreshButton= (Button)findViewById(R.id.refreshButton);
refreshButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
objectAdapter.notifyDataSetChanged();
}
});
EfficientAdapter.java
public static class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private Context context;
public EfficientAdapter(Context context) {
mInflater = LayoutInflater.from(context);
this.context=context;
}
public int getCount() {
return CountriesList.name.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.homemplebrowview, null);
holder = new ViewHolder();
holder.text1 = (TextView) convertView
.findViewById(R.id.name);
holder.text2 = (TextView) convertView
.findViewById(R.id.mrn);
holder.text3 = (TextView) convertView
.findViewById(R.id.date);
holder.text4 = (TextView) convertView
.findViewById(R.id.age);
holder.text5 = (TextView) convertView
.findViewById(R.id.gender);
holder.text6 = (TextView) convertView
.findViewById(R.id.wardno);
holder.text7 = (TextView) convertView
.findViewById(R.id.roomno);
holder.text8 = (TextView) convertView
.findViewById(R.id.bedno);
holder.btnList = (Button)convertView.findViewById(R.id.listbutton);
// holder.btnList.setOnClickListener(this);
holder.btnList.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent next=new Intent(context, SeviceDetails.class);
context.startActivity(next);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text1.setText(CountriesList.name[position]);
holder.text2.setText(CountriesList.mrn[position]);
holder.text3.setText(CountriesList.actualstart[position]);
holder.text4.setText(CountriesList.age[position]);
holder.text5.setText(CountriesList.gender[position]);
holder.text6.setText(CountriesList.wardNo[position]);
holder.text7.setText(CountriesList.roomNo[position]);
holder.text8.setText(CountriesList.bedNo[position]);
return convertView;
}
static class ViewHolder {
public Button btnList;
public TextView text8;
public TextView text7;
public TextView text6;
public TextView text5;
public TextView text4;
public TextView text1;
public TextView text2;
public TextView text3;
}
@Override
public void notifyDataSetChanged() // Create this function in your adapter class
{
super.notifyDataSetChanged();
}
}
}
【问题讨论】:
-
试试这个:androidhive.info/2012/03/android-listview-with-load-more-button。对于自动添加,试试这个:mysamplecode.com/2012/07/android-listview-load-more-data.html。还有,不要忘记搜索的力量!!
-
在你的主 Activity 为什么你调用 setAdapter 两次?
-
你应该删除这一行 listView.setAdapter(new EfficientAdapter(this));
-
@MohitVerma 谢谢你..目前我在 countrylist.java 中使用静态数据..如何检查我的刷新数据是否正常工作。目前它不工作。
-
由于你的数据源是静态的,你无法检查它是否工作
标签: android android-layout android-intent android-emulator