我是 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中select
的option
标签
最佳答案
创建一个新的 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/