帮助从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,如果你让他们编号,和/或把空白在他们的定义。
确保它们被定义为无引导或尾随空白