帮助从arrays.xml文件获取string数组

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

如果我在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); } } 

你的array.xml不正确。 改变它是这样的

这里是array.xml文件

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

你的XML不是完全清楚的,但是数组XML可能会导致强制closures,如果你让他们编号,和/或把空白在他们的定义。

确保它们被定义为无引导或尾随空白