84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
闭关修行中......
這只能說你對ListView的掌握還不夠,ListView依賴資料適配器Adapter的資料銜接,資料修改也存在於資料來源或資料適配器中,不是那你重新產生資料適配器。
ListView
Adapter
使用適配器 Adapter 的 notifyDataSetChanged() 方法去更新。 。 。 舉個栗子:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button_add = (Button) findViewById(R.id.button); // 1.绑定GridView gridView = (GridView) findViewById(R.id.gridView); // 2.创建List资源类对象: list = new ArrayList<Map<String, Object>>(); for (int i=0; i<images.length; i++) { Map<String,Object> map = new HashMap<String, Object>(); map.put("imageid",images[i]); map.put("words",words[i]); list.add(map); } // 3.创建一个 SimpleAdapter simpleAdapter = new SimpleAdapter( this, //上下文 list, //资源对象 R.layout.simple_adapter_cell, new String[] {"imageid","words"}, new int[] {R.id.imageView,R.id.textView} ); // 4.加载到GridView中 gridView.setAdapter(simpleAdapter); // 5.设置 GridView的点击事件: gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.e("AdapterView",Integer.toString(parent.getId())); Log.e("View",Integer.toString(view.getId())); Log.e("position",Integer.toString(position)); Log.e("id", Long.toString(id)); } }); // 6.GridView 的动态更新 button_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 6.1 给资源类添加新的 Map Map<String,Object> temp = new HashMap<String, Object>(); //新建Map temp.put("imageid",images[0]); //添加新的资源 temp.put("words","P"); list.add(temp); // 6.2 通知 GridView 更新 simpleAdapter.notifyDataSetChanged(); } }); }
直接在資料來源List中add,然後通知Adapter去更新數據,adapter.notifyDataSetChanged();
將新資料加入適配器的list 然後adapter.notifiedxxx就行啦
recyclerView 配合staggergroidlayoutmanager自己繼承adapter 用adapter.notifydatachanged()來通知更新
這只能說你對
ListView
的掌握還不夠,ListView
依賴資料適配器Adapter
的資料銜接,資料修改也存在於資料來源或資料適配器中,不是那你重新產生資料適配器。使用適配器 Adapter 的 notifyDataSetChanged() 方法去更新。 。 。
舉個栗子:
直接在資料來源List中add,然後通知Adapter去更新數據,adapter.notifyDataSetChanged();
將新資料加入適配器的list 然後adapter.notifiedxxx就行啦
recyclerView 配合staggergroidlayoutmanager
自己繼承adapter
用adapter.notifydatachanged()來通知更新