我有一个listview,其中包含来自webservice的值。每个页面只包含10个listitems,第2页包含10个等等。每个listitem都是可点击的,它包含一个主要用于投票的按钮。所以当我点击按钮时列表项1,将值添加到webservice。
按钮点击代码放在自定义基础适配器类中。所以我可以轻松添加投票。但问题是,当我提交投票时,我也要刷新我的列表视图。如果iam在页面中没有5,刷新listview页面。
如何在将值提交给webservice后立即刷新此列表视图?
main.java的示例代码
private class ProgressThreadNextPageLoading extends
AsyncTask<String, Void, String> {
// private String Content;
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(KidsCrackMeUp.this);
progressDialog.setMessage("Loading..Please Wait..");
progressDialog.setIcon(R.drawable.icon);
progressDialog.show();
}
@Override
protected String doInBackground(String... urls) {
String response = "";
// call ur webservice here
try {
// pagenum = 1;
posts= web
.getAllposts(pagenum);
response = "Yes";
} catch (Exception e) {
e.printStackTrace();
response = "Failure";
}
return response;
}
@Override
protected void onPostExecute(String result) {
// below line code is to dismiss the progress bar
progressDialog.dismiss();
if (posts != null) {
adapter = new DynamicListAdapter(
main.this, posts
lstPosts.setAdapter(adapter);
adapter.notifyDataSetChanged();
//btnState.setPressed(true);
}
----------------------------------自定义适配器类
viewHolder.btnVoting.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
final Dialog d = new Dialog(activity);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
d.setContentView(R.layout.voteselectornew);
Button btnCategoryCancel = (Button) d
.findViewById(R.id.btnCategoryCancel);
Button twcVote = (Button) d
.findViewById(R.id.btnTwcVote);
twcVote.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String confirm = web
.addTwcVote(UserSessionKey, Userlist.get(position).contentid);
if (confirm.contains("Successfully")) {
d.dismiss();
}
答案 0 :(得分:4)
您必须通知ListView适配器数据已更改。
listViewAdapater.notifyDataSetChanged();
你可以通过带有更新数组的构造函数来重新定义你的适配器。
答案 1 :(得分:3)
调用listview适配器的方法将更改更新为:
adapter.notifyDataSetChanged();