1

次のクラスがあります。

public class BkmCollect extends ArrayList<Bkmark> {

    public static BkmCollect getTestBkm(Context context) {
        BkmCollect bookmarks = new BkmCollect ();

        String[] titles  = context.getResources().getStringArray(R.array.bookmark_titles);
        String[] urls    = context.getResources().getStringArray(R.array.bookmark_urls);
        TypedArray icons = context.getResources().obtainTypedArray(R.array.bookmark_icons);

        for (int i = 0; i < titles.length; i ++) {
            bookmarks.add(titles[i], urls[i], icons.getDrawable(i));
        }

        return bookmarks;
    }
}

このクラスには「add」メソッドが実装されています。そして、「Bkmark」クラスは、私のプロジェクトで作成された別のクラスです。BkmCollect.getTestBkm メソッドからデータを取得する ListView を作成したいと考えています。onCreate メソッド内でこれを行うにはどうすればよいですか? ありがとう!

ListView に挿入されるフィールドを含む XML ファイル:

<resources>
    <string-array name="bookmark_titles">
        <item>Google</item>
        <item>Bing</item>
        <item>Gmail</item>
    </string-array>

    <string-array name="bookmark_urls">
        <item>http://www.google.com</item>
        <item>http://www.bing.com/</item>
        <item>http://www.gmail.com</item>
    </string-array>

    <array name="bookmark_icons">
        <item>@drawable/google</item>
        <item>@drawable/bing</item>
        <item>@drawable/gmail</item>
    </array>
</resources>

私はこのようなことをしようとしています:

ListView lv = (ListView) findViewById(R.id.favoritos_listView);
ArrayAdapter adapter;
Context context = getApplicationContext();
ArrayList<Bkmark> my_array = BkmCollect .getTestBkm(context);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, my_array);
lv.setAdapter(adapter);

ここにコードを入力してください

4

3 に答える 3

1

ファイルに を作成し、Java で取得しますListViewlayout.xml

ListView lv = (ListView)findViewById(R.id.your_list_view_id);

次のようにして、リストビューにデータを入力します。

ArrayList<String> my_array_list = new ArrayList<String>();
new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, my_array_list);
lv.setAdapter(arrayAdapter); 

編集

たとえば、オブジェクトを追加するメソッドがあるとします。ArrayList

public ArrayList<String> getPopulatedArrayList() {
    ArrayList<String> myList = new ArrayList<String>();
    myList.add("One");
    myList.add("Two");
    myList.add("Three");

    return myList; 
}

そしてあなたのonCreate方法で

ArrayAdapter adapter;
ListView lv;
lv = (ListView)findViewById(R.id.my_list);

ArrayList<String> list = getPopulatedArrayList(); 
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter); 

これは が 1 つの List に対してのみ機能するTextViewことに注意してください。リストにさらにデータが必要な場合は、 を拡張する独自のクラスを作成する必要がありますBaseAdapter。これに関する例はここにあります

今は何も不明ではありませんか?その場合は、コメントを追加してください。

于 2012-10-24T19:13:11.967 に答える
1

ArrayAdapter に関連付けられた ListView を使用する必要があります

優れたチュートリアルについては、 http: //www.ezzylearning.com/tutorial.aspx?tid=1763429を参照してください(パフォーマンスの調整を含む)

于 2012-10-24T19:12:27.700 に答える
0

A viewlist? Do you mean you want to have a bunch of views added to the screen?

If so, there's functions in every layout type to do this. In LinearLayout, there's .addView(). If you want to do something fancier, you can create LinearLayout.LayoutParams and adjust those. Many Android programmers don't make views manually.

If the views aren't going to change a lot or if you can hide parts of them, you can also consider a ListView and/or ListAdapter.

于 2012-10-24T18:57:04.867 に答える