0

私は小さなAndroidアプリケーションに取り組んでいます.新しく追加されたアイテムをリストビューに表示したいArrayList<HashMap<String,String>>().SimpleAdapterを使用したため、データベースに格納されているアイテムを取得しています.新しく追加された要素を取得していますが、 ArrayList<HashMap<String,String>>()使用してもリストビューに表示されませんnotifyDataSetChanged()リストビューを更新するには、この問題の解決を手伝ってください。

do 
                {
                    cont = new String[3];
                    cont[0] = Integer.toString(c.getInt(ID));
                    cont[1] = c.getString(booktitl);
                    cont[2] = c.getString(audiotime);

                    audiobooks.add(cont);

                }
                while(c.moveToNext());

                c.close();

                db.close();//close db resources 
                for(int i=0;i<audiobooks.size();i++)
                {
                    //hashmap to add it to resultbookMarklist.
                    HashMap<String, String> item = new HashMap<String, String>();                       
                    resultbookMarklist=new ArrayList<HashMap<String,String>>();

                    String title[]= audiobooks.get(i);

                    item.put("Booktiltle",title[1]);
                    item.put("BookmarkTime",title[2]);
                    //intantiating string which stores filetitle
                    from= new String[] {"Booktiltle","BookmarkTime" };
                    //intantiating array of integer which gives detais and col id for document
                    to= new int[] { R.id.itemr1,R.id.itemr2};
                    Log.e("booktitle is", title[1]);
                    Log.e("BookmarkTime is", title[2]);
                    resultbookMarklist.add(item);

                }
                //resultbookMarklist=getBookmark();
                SimpleAdapter adapter = new SimpleAdapter(GetAudioBookmarks.this, resultbookMarklist, R.layout.row3, from, to);
                lv.setAdapter(adapter); 


            }
4

2 に答える 2

1

Arraylist<> が更新され、更新後に adapter.notifyDataSetChanged() を呼び出している場合は、リストを更新する必要があります。

于 2012-09-05T04:47:10.007 に答える
1

SimpleAdapter の代わりに ArrayAdapter を使用します。これは、SimpleAdapter が Static Array のアダプターとして使用されるためです。それでも SimpleAdapter を使用したい場合は、代わりに notifyDatasetChanged を呼び出して、新しいアダプター インスタンスを作成し、listview に設定します。

于 2012-09-05T04:48:15.370 に答える