使用新数据更新或合并 arrayadapter - 按钮更多
update or merge arrayadapter with new data - button more
我需要在 ListView 中添加更多我从数据库中获取的现有数据,但是,使用 "more" 按钮而不启动或刷新 activity。
我建议这样,使用 adapter.AddAll (NewAdapter),但它只显示列表中的地址(我认为就是它)行,正如您在单击后添加的行的图像中看到的更像是他没有确定 xml 字段。但是adapter是一样的,新建一个listview只有用新的Adpter才能正确显示。
有什么建议吗?
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
Nadapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
adapter.addAll(Nadapter);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
}
}
}
结束代码并运行帮助Shadab:
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
Nadapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
adapter.addAll(result);
adapter.notifyDataSetChanged();
}
}
}
您需要在适配器上添加项目而不是新适配器。
您不需要创建新适配器并合并,而是需要在现有适配器中设置新数据并使用 notifyDataSetChanged()
.
刷新它
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
//Whatever your initial list was add the new data in that list
oldList.addAll(result);
adapter.notifyDataSetChanged();
}
}
}
我需要在 ListView 中添加更多我从数据库中获取的现有数据,但是,使用 "more" 按钮而不启动或刷新 activity。
我建议这样,使用 adapter.AddAll (NewAdapter),但它只显示列表中的地址(我认为就是它)行,正如您在单击后添加的行的图像中看到的更像是他没有确定 xml 字段。但是adapter是一样的,新建一个listview只有用新的Adpter才能正确显示。
有什么建议吗?
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
Nadapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
adapter.addAll(Nadapter);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
}
}
}
结束代码并运行帮助Shadab:
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
Nadapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
adapter.addAll(result);
adapter.notifyDataSetChanged();
}
}
}
您需要在适配器上添加项目而不是新适配器。
您不需要创建新适配器并合并,而是需要在现有适配器中设置新数据并使用 notifyDataSetChanged()
.
@Override
protected void onPostExecute(List<RssItem> result) {
progressBar.dismiss();
// Get a ListView from main view
ListView itcItems = (ListView) findViewById(R.id.listMainView);
if (Integer.parseInt(limit) < 1) {
adapter = new ArrayAdapter<RssItem>(local, android.R.layout.simple_list_item_1, result);
itcItems.setAdapter(adapter);
itcItems.setOnItemClickListener(new ListListener(result, local));
} else {
if (Nadapter.getCount() == 0){
final Button btMais = (Button) findViewById(R.id.btMais);
btMais.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Don't more data.", Toast.LENGTH_SHORT).show();
} else {
//Whatever your initial list was add the new data in that list
oldList.addAll(result);
adapter.notifyDataSetChanged();
}
}
}