我在页面加载时有一个 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/