java - 如何从 arrays.xml 文件中获取字符串数组

标签 java android arrays

我只是想从我的 arrays.xml 中的数组中显示一个列表。当我尝试在模拟器中运行它时,我收到强制关闭消息。

如果我在java文件中定义数组

String[] testArray = new String[] {"one","two","three","etc"};

它有效,但是当我使用时

String[] testArray = getResources().getStringArray(R.array.testArray);

它不起作用。

这是我的 Java 文件:

package com.xtensivearts.episode.seven;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class Episode7 extends ListActivity {
 String[] testArray = getResources().getStringArray(R.array.testArray);

 /** Called when the activity is first created. */
 @Override
 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  // Create an ArrayAdapter that will contain all list items
  ArrayAdapter<String> adapter;

  /* Assign the name array to that adapter and 
     also choose a simple layout for the list items */ 
  adapter = new ArrayAdapter<String>(
    this,
    android.R.layout.simple_list_item_1,
    testArray);

  // Assign the adapter to this ListActivity
  setListAdapter(adapter);
 }


}

这是我的 arrays.xml 文件

<?xml version="1.0" encoding="utf-8"?>  
<resources>  
  <array name="testArray">  
    <item>first</item>  
    <item>second</item>  
    <item>third</item>  
    <item>fourth</item>  
    <item>fifth</item>  
  </array>
</resources>

最佳答案

您不能以这种方式初始化您的 testArray 字段,因为应用程序资源还没有准备好。

只需将代码更改为:

package com.xtensivearts.episode.seven;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class Episode7 extends ListActivity {
    String[] mTestArray;

    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Create an ArrayAdapter that will contain all list items
        ArrayAdapter<String> adapter;

        mTestArray = getResources().getStringArray(R.array.testArray);    

        /* Assign the name array to that adapter and 
        also choose a simple layout for the list items */ 
        adapter = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,
            mTestArray);

        // Assign the adapter to this ListActivity
        setListAdapter(adapter);
    }
}

关于java - 如何从 arrays.xml 文件中获取字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453989/

相关文章:

python - 从生成器创建两个串联数组

java - Spark 1.5 和 datastax-ddc-3.2.1 Cassandra 依赖项 Jars?

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/commons/logging/LogFactory 中的异常

android - 是否可以仅使用 su 二进制文件而不安装 SuperSU 或 Superuser apk 以 root 身份运行 shell 命令?

android - Xamarin Forms 将 WebView 内容获取为字符串

javascript - 迭代对象键和值(对象数组)

java - 元素与 GridBagConstraints 不正确对齐

JAVA如何按空格分割并存储到双数组中

java - 尝试在模板 xml 文件的循环中以编程方式设置 View

javascript - 值存储在不同的数组中而不是单个数组中