在帮助获取字符串数组从arrays.xml文件 [英] Help in getting String Array from arrays.xml file
问题描述
我只是想从一个数组,我在我的arrays.xml显示一个列表。当我尝试在模拟器中运行它,我得到一个强制关闭的消息。
如果我在java文件中定义的数组
的String [] testArray =新的String [] {一,二,三,等};
它的工作原理,但是当我使用
的String [] testArray = getResources()getStringArray(R.array.testArray);
它不工作。
下面是我的Java文件:
包com.xtensivearts.episode.seven;
进口android.app.ListActivity;
进口android.os.Bundle;
进口android.widget.ArrayAdapter;
公共类Episode7扩展ListActivity {
的String [] testArray = getResources()getStringArray(R.array.testArray)。
/ **第一次创建活动时调用。 * /
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
//创建一个包含所有列表项的ArrayAdapter
ArrayAdapter<字符串>适配器;
/ *指定名称数组的适配器和
也可以选择一个简单的布局列表项* /
适配器=新的ArrayAdapter<字符串>(
本,
android.R.layout.simple_list_item_1,
testArray);
//指定适配器这个ListActivity
setListAdapter(适配器);
}
}
下面是我的arrays.xml文件
< XML版本=1.0编码=UTF-8&GT?;
<资源>
<数组名=testArray>
<项目>首先< /项目>
<项目>第二个< /项目>
<项目>第三< /项目>
<项目>四< /项目>
<项目>五< /项目>
< /阵列>
< /资源>
您无法初始化 testArray
字段这种方式,因为应用程序的资源仍然没有准备好
只要改变code到:
包com.xtensivearts.episode.seven;
进口android.app.ListActivity;
进口android.os.Bundle;
进口android.widget.ArrayAdapter;
公共类Episode7扩展ListActivity {
的String [] mTestArray;
/ **第一次创建活动时调用。 * /
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
//创建一个包含所有列表项的ArrayAdapter
ArrayAdapter<字符串>适配器;
mTestArray = getResources()getStringArray(R.array.testArray)。
/ *指定名称数组的适配器和
也可以选择一个简单的布局列表项* /
适配器=新的ArrayAdapter<字符串>(
本,
android.R.layout.simple_list_item_1,
mTestArray);
//指定适配器这个ListActivity
setListAdapter(适配器);
}
}
I am just trying to display a list from an array that I have in my arrays.xml. When I try to run it in the emulator, I get a force close message.
If I define the array in the java file
String[] testArray = new String[] {"one","two","three","etc"};
it works, but when I use
String[] testArray = getResources().getStringArray(R.array.testArray);
it doesnt work.
Here is my Java file:
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);
}
}
Here is my arrays.xml file
<?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>
You can't initialize your testArray
field this way, because the application resources still aren't ready.
Just change the code to:
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);
}
}
这篇关于在帮助获取字符串数组从arrays.xml文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!