如何填充一个字符串数组一个ListView? [英] How to fill a ListView with a string-array?

查看:107
本文介绍了如何填充一个字符串数组一个ListView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的ListView显示这些itens

 <字符串数组名=bookmark_titles>
    <项目>谷歌< /项目>
    <项目>宗炳,LT; /项目>
    <项目>的Gmail< /项目>
< /字符串数组>

我有得到这些值的方法。

 公共静态采集getBookmarks(上下文的背景下){
    收藏书签=新集();    的String []标题= context.getResources()getStringArray(R.array.bookmark_titles)。    的for(int i = 0; I< titles.length;我++){
        bookmarks.add(标题[I]);
    }    返回书签;
}

我如何调用该方法getBookmarks在我main.java填补的ListView?

我已经创建了一个ListView。它是:

 < ListView控件
    机器人:ID =@ + ID / my_listView
    机器人:layout_width =match_parent
    机器人:layout_height =WRAP_CONTENT
    机器人:分=#ECECEC进行
    机器人:dividerHeight =1SP/>

main.java
我试图做这样的事情:

 的ListView LV =(ListView控件)findViewById(R.id.my_listView);ArrayList的<书签及GT; my_array = BookmarkCollection.getTestBookmarks(上下文);
适配器=新ArrayAdapter(这一点,android.R.layout.simple_list_item_1,my_array);
lv.setAdapter(适配器);


解决方案

您可以创建一个内胆适配器,检查出的静态方法<一href=\"http://developer.android.com/reference/android/widget/ArrayAdapter.html#createFromResource%28android.content.Context,%20int,%20int%29\"相对=nofollow> ArrayAdapter createFromResource(上下文的背景下,诠释textArrayResId,诠释textViewResId)

第一个参数可能会是你的活动,第二个是 R.array.bookmark_titles ,第三是使用布局。

要根据该意见明确,方法接受 INT ,而这正是在生成的研究类存储为。

下面是一个完整的例子,假设这是从一个叫活动:

  ArrayAdapter&LT;&CharSequence的GT; AA = ArrayAdapter.createFromResource(这一点,R.array.bookmark_titles,android.R.layout.simple_list_item_1);
myListView.setAdapter(AA);

在这种情况下, android.R.layout.simple_list_item_1 指的是由Android SDK中提供的XML布局。如果需要,你可以改变这一点。

I want to show these itens at my ListView

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

I have a method that gets these values.

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;
}

How can I call the method getBookmarks in my main.java to fill the ListView?

I have already created a ListView. It is:

<ListView
    android:id="@+id/my_listView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="#ECECEC"
    android:dividerHeight="1sp" />

main.java I am trying to do something like this:

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);

解决方案

You can create your adapter with a one liner, check out the static method ArrayAdapter createFromResource(Context context, int textArrayResId, int textViewResId)

The first argument will probably be your Activity, the second is R.array.bookmark_titles, and the third is a layout to use.

To clarify based on the comments, the method accepts int, which is exactly what the constants in your generated R class are stored as.

Here's a complete example, assuming this is being called from an Activity:

ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this, R.array.bookmark_titles, android.R.layout.simple_list_item_1);
myListView.setAdapter(aa);

In this case, android.R.layout.simple_list_item_1 refers to an XML layout that is provided by the Android SDK. You can change this if needed.

这篇关于如何填充一个字符串数组一个ListView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆