我有一個帶有ListView的Android應用程序。每行都由SQLIte查詢結果以二進制方式生成。當用戶點擊一個項目時,應用程序應該刷新該項目的「內容」,由另一個SQLite查詢生成,等等。 我試圖「刷新」活動創建一個新的意圖,並將其發送到同一活動。活動名稱是ShopActivity刷新ListView的方法
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顯示了我很多關於捆綁的警告。看來,該應用程序無法啓動活動。
是否有另一種方式來「刷新」ListView?這個實現是否正確?
當你的列表中的數據需要更新時,你應該嘗試在你的適配器上調用notifyDataSetChanged(),並可能在你的ListView上invalidate()以請求視圖重繪自己 –