android - 清除 GridView 并在 android 中重新生成它

标签 android gridview android-gridview

我在页面加载时有一个 GridView ,它已填充。我有一个同步按钮,当我单击它时它应该重新生成 GridView 。如何做到这一点。

我正在使用

ImageAdapter 适配器 = new ImageAdapter(MainActivity.this); gridview.setAdapter(适配器);

详细代码

try {
            if(stringArrayPdfUrlForLocalDB.length>0)
            {
                for(int i=0 ; i < stringArrayPdfUrlForLocalDB.length ; i++)
                {
                    String fileName = getOnlyFileName(stringArrayPdfUrlForLocalDB[i]);
                    String imageName = getImageName(stringArrayPdfUrlForLocalDB[i]);
                    String BookId   = stringArrayBookId[i];

                    //Toast.makeText(getApplicationContext(), "File Name: "+fileName+"\nBookId: "+BookId, Toast.LENGTH_LONG).show();


                    db.open();        
                    long id = db.insertRecord(BookId, fileName + ".pdf", imageName);        
                    db.close();
                }
            }
            else
            {
                Toast.makeText(getApplicationContext(), "Not getting any book form server.", Toast.LENGTH_SHORT).show();
            }

            //populate grid view

            ImageAdapter adapter = new ImageAdapter(MainActivity.this);
            gridview.setAdapter(adapter);

        } catch (Throwable e) {
            Toast.makeText(getApplicationContext(), ""+e, Toast.LENGTH_SHORT).show();
        }

最佳答案

点击按钮后:

首先加载你的数据

之后就可以了。

adapter.notifyDataSetChanged();

已编辑:

ImageAdapter adapter = new ImageAdapter(MainActivity.this);

在执行该代码后创建全局变量的适配器是:

adapter = new ImageAdapter(MainActivity.this);
gridview.setAdapter(adapter); 

在您的代码中更改此代码:

protected void onPostExecute(Double result) {
            // Toast.makeText(getApplicationContext(), responseBody,
            // Toast.LENGTH_SHORT).show();

            if (responseBody != null) {
                processResponce(responseBody);
            } else {
                Toast.makeText(getApplicationContext(), "Empty Responce.",
                        Toast.LENGTH_LONG).show();
            }

            adapter.notifyDataSetChanged();

        }

关于android - 清除 GridView 并在 android 中重新生成它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879344/

相关文章:

android - 使用产品口味时,应用程序名称不会在启动器中更改

android - 阻止 startActivity 的默认动画

asp.net - GridView 空数据模板

android - 将焦点移动到 GridView 的第一个项目 View

android - 简单的 gridview 作为卡片 View

Android ArrayAdapter getView 无法获得正确的位置

android - 在 Kotlin Android 中向 Recyclerview 添加数据

java - 我想创建一个表,但它给了我一个错误

c# - 自定义字符串格式

php - yii2 gridview 过滤第二个表列上的计数/总和