Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中刷新列表视图_Android_Listview - Fatal编程技术网

在android中刷新列表视图

在android中刷新列表视图,android,listview,Android,Listview,我有一个listview,其中包含来自webservice的值。每个页面仅包含10个listitems,接下来的10个在第2页等。每个listitem都可以单击,并且它包含一个主要用于投票的按钮。因此,当我单击列表项1中的按钮时,会向webservice添加一个值 按钮点击代码放置在自定义的基本适配器类中。这样我就可以轻松添加投票。但问题是,当我提交投票时,我也想刷新我的listview。假设我在第5页,刷新该listview页面 如何在将值提交到webservice后立即刷新此listview

我有一个listview,其中包含来自webservice的值。每个页面仅包含10个listitems,接下来的10个在第2页等。每个listitem都可以单击,并且它包含一个主要用于投票的按钮。因此,当我单击列表项1中的按钮时,会向webservice添加一个值

按钮点击代码放置在自定义的基本适配器类中。这样我就可以轻松添加投票。但问题是,当我提交投票时,我也想刷新我的listview。假设我在第5页,刷新该listview页面

如何在将值提交到webservice后立即刷新此listview

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);
        }

调用listview适配器的方法将更改更新为:

adapter.notifyDataSetChanged();

您必须通知ListView适配器数据已更改

listViewAdapater.notifyDataSetChanged();

您可以通过构造函数使用更新的数组重新获得适配器。

我是否应该检查任何条件?投票操作完成后,只需更新适配器类中使用的数据,然后调用适配器的notifyDataSetChanged来自动更新列表中的视图。对不起,我在问我应该将此代码放在哪里?listview是在活动开始时加载的。因此我不知道将此notify放置在何处。当您按下按钮并在其调用操作完成的块时,请将其包含在底部。实际上,我的投票按钮在自定义适配器类中。可能重复
listViewAdapater.notifyDataSetChanged();