我想在我的listView
上显示这些itens<string-array name="bookmark_titles">
<item>Google</item>
<item>Bing</item>
<item>Gmail</item>
</string-array>
我有一种获取这些值的方法。
public static Collection getBookmarks(Context context) {
Collection bookmarks = new Collection();
String[] titles = context.getResources().getStringArray(R.array.bookmark_titles);
for (int i = 0; i < titles.length; i ++) {
bookmarks.add(titles[i]);
}
return bookmarks;
}
如何在我的main.java中调用方法getBookmarks以填充listView?
我已经创建了一个listView。是:
<ListView
android:id="@+id/my_listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#ECECEC"
android:dividerHeight="1sp" />
main.java我正在尝试这样做:
ListView lv = (ListView) findViewById(R.id.my_listView);
ArrayList<Bookmark> my_array = BookmarkCollection.getTestBookmarks(context);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, my_array);
lv.setAdapter(adapter);
您可以使用一个衬里创建适配器,请查看静态方法arrayadapter createFromResource(上下文,int textarrayraysid,int textViewWiewResid)
>第一个参数可能是您的活动,第二个是R.array.bookmark_titles
,第三个是使用的布局。
为了根据评论澄清,该方法接受int
,这正是您生成的R
类中的常数存储为。
以下是一个完整的例子,假设这是从一项活动中调用的:
ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this, R.array.bookmark_titles, android.R.layout.simple_list_item_1);
myListView.setAdapter(aa);
在这种情况下,android.R.layout.simple_list_item_1
是指由Android SDK提供的XML布局。您可以在需要时更改此。
您可以使用阵列adapter进行此操作,并使用数组或列表来提供数据
lv.setAdatper(new ArrayAdapter<String>(context, R.layout.some_layout_to_use, R.id.some_textview_in_layout, listData);