【发布时间】:2012-11-19 21:35:38
【问题描述】:
我有一个带有 ListView 的 Android 应用。每一行都是由 SQLIte 查询结果动态生成的。当用户点击一个项目时,应用程序应该用该项目的“内容”刷新列表,由另一个 SQLite 查询生成,依此类推。 我试图“刷新”创建新意图并将其发送到同一活动的活动。活动名称为 ShopActivity
ListView list_content = ((ListView)findViewById(R.id.listforshop));
list_content.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// ID and text of selected item
long selected_id = id;
String selected_name = (String) ((TextView) view.findViewById(R.id.element)).getText();
// New intent
Intent intent = getIntent();
intent.setClassName(ShopActivity.this, ShopActivity.class.getName());
// Passing data and refreshing activity
intent.putExtra("id", selected_id);
intent.putExtra("name", selected_name);
intent.putExtra("type", "");
startActivity(intent);
}
});
通过这种方式,LogCat 向我显示了很多关于 Bundle 的警告。该应用似乎无法启动活动。
还有另一种“刷新” ListView 的方法吗?这个实现是否正确?
【问题讨论】:
-
当列表的数据需要更新时,您应该尝试在适配器上调用 notifyDataSetChanged() 并可能在 ListView 上调用 invalidate() 以请求视图重绘自身
标签: android listview android-intent android-activity refresh