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

标签 android arrays string listview

我是 android 的新手,想要填充以 id 作为值和字符串作为标题的 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中selectoption标签

最佳答案

创建一个新的 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"
/>

在您的 Activity 中,您必须:

  • 创建一个 ListView 变量
  • 将您的观点映射到此变量的 XML 上
  • 从资源数组适配器中获取字符串列表
  • 实例化一个适配器(一个你必须在你的 ListView 上设置的对象来获取你的列表(在你的情况下,字符串)并将它们添加到你的回收器 View 中。你可以为你的适配器创建一个自定义类,但是当处理字符串,您可以使用一个简单的 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);
    }
}

关于android - 使用 strings.xml 中的文本和值填充 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39019824/

相关文章:

php - 获取分组的 HTML 数据到 PHP 数组? (比如复选框的子元素)

javascript,遍历多数组以列出数组的第一个元素

java - 如何在不同的类中打印一个类中定义的字符串?

android - 捕捉到特定类型的 ItemView 的 RecyclerView

android - 通知彩色操作按钮 Android 10

javascript - 按特定顺序将多个对象数组合并为 1 个对象

string - Delphi:如何将 TIdBytes 编码为 Base64 字符串?

c++ - 将字符串转换为长

android - 隐藏软键盘时从 editText 中隐藏光标

android - Android 中的 Button Click 上的 Long Click 事件触发