使用strings.xml中的文本和值填充ListView

时间:2016-08-18 13:43:25

标签: android arrays string listview

我是android的新手,想要填充id为value,字符串为caption的listview项。 我所能找到的只是他们建议使用字符串数组:

<string-array name="test">
      <item>first item</item>
      <item>second item</item>
</string-array>

我正在寻找的是:

<string-array name="test">
      <item value="1">first item</item>
      <item value="2">second item</item>
</string-array>

就像html

option的{​​{1}}标签一样

2 个答案:

答案 0 :(得分:2)

创建一个新的Activity(这将生成一个xml文件(布局)和一个Java类。

在布局上,创建一个在int上具有ListView的Layot:

<?xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
    android:layout_width=”match_parent”
    android:layout_height=”match_parent”
    android:orientation=”vertical” >

 <ListView
    android:id=”@+id/itemList”
    android:layout_width=”match_parent”
    android:layout_height=”wrap_content” 
    android:entries="@array/test"
/>

在您的活动中,您必须:

  • 创建ListView变量
  • 在此变量上的XML上映射您的视图
  • 从资源阵列适配器
  • 获取字符串列表
  • 实施适配器(您必须在列表视图上设置的对象以获取列表(在您的情况下为字符串)并将其添加到您的回收站视图中。您可以为适配器创建自定义类,但是处理字符串时,可以使用一个名为ArrayAdapter的简单方法。
  • 在ListView对象上设置适配器

要完成所有这些工作,请将其放入代码中:

public class MyActivity extends Activity {

    // Creating variable
    ListView listView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Mapping with your XML view
        listView = (ListView) findViewById(R.id.itemList);

        /// Getting list of Strings from your resource
        String[] testArray = getResources().getStringArray(R.array.test); 
         List<String> testList = Arrays.asList(test);

        // Instanciating Adapter
        ArrayAdapter<String> adapter = new ArrayAdapter<>(getBaseContext(),
    android.R.layout.simple_list_item_1, testList);

        // setting adapter on listview
        listview.setAdapter(adapter);
    }
}

答案 1 :(得分:0)

这将帮助您按位置检索字符串..

String[] some_array = getResources().getStringArray(R.array.your_string_array)