どのように私は、XMLやJSONデータで(アンドロイド)でのListViewを埋めるのですか?

StackOverflow https://stackoverflow.com/questions/2227154

質問

私は、チュートリアルを読んで、それはアイテムのリストを埋めるためにSQLliteと「SimpleCursorAdapter」を使用しています。 これは、チュートリアルでは教えてくれたコードです。

private void fillData() {
        // Get all of the notes from the database and create the item list
        Cursor c = mDbHelper.fetchAllNotes();
        startManagingCursor(c);

        String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
        int[] to = new int[] { R.id.text1 };

        // Now create an array adapter and set it to display using our row
        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
        setListAdapter(notes);
    }

しかし...私は、XMLデータとそれを埋めるために何をしたい場合は?それは同じ方法ですか?誰かが私に(コードで)の例を与えることができますか?感謝ます。

役に立ちましたか?

解決

(私の記憶が正しければ)CursorAdapterオブジェクトがCursorNotesDbAdapterによって返されるので、

の例では、fetchAllNotesを使用しています。リストを作成するために、生のXMLに渡す方法があるかどうか、私は知りませんが、あなたはSimplelistAdapterを使用してリストを作成するHashMapに名前/値のペアを使用することができます。

あなたは、XMLとJSONまたはを解析し、それをハッシュ表を作成し、リストを移入するためにそれを使用することができます。次の例では、それがすべてでは、動的ではありません実際には、XMLを使用していませんが、それは、実行時にリストを組み立てる方法を示していません。それはonCreateを拡張活動のListActivity方法から取られています。すべて大文字の値は、クラスの先頭に定義された静的定数文字列であり、キーとして使用されます。

// -- container for all of our list items
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();

// -- list item hash re-used
Map<String, String> group;

// -- create record
group = new HashMap<String, String>();

group.put( KEY_LABEL, getString( R.string.option_create ) );
group.put( KEY_HELP,  getString( R.string.option_create_help ) );
group.put( KEY_ACTION, ACTION_CREATE_RECORD );

groupData.add(group);

// -- geo locate
group = new HashMap<String, String>();

group.put( KEY_LABEL, getString(R.string.option_geo_locate ) );
group.put( KEY_HELP, getString(R.string.option_geo_locate_help ) )
group.put( KEY_ACTION, ACTION_GEO_LOCATE );

groupData.add( group );

// -- take photo
group = new HashMap<String, String>();

group.put( KEY_LABEL, getString( R.string.option_take_photo ) );
group.put( KEY_HELP, getString(R.string.option_take_photo_help ) );
group.put( KEY_ACTION, ACTION_TAKE_PHOTO );

groupData.add( group );

// -- create an adapter, takes care of binding hash objects in our list to actual row views
SimpleAdapter adapter = new SimpleAdapter( this, groupData, android.R.layout.simple_list_item_2, 
                                                   new String[] { KEY_LABEL, KEY_HELP },
                                                   new int[]{ android.R.id.text1, android.R.id.text2 } );
setListAdapter( adapter );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top