在帮助获取字符串数组从arrays.xml文件 [英] Help in getting String Array from arrays.xml file

查看:144
本文介绍了在帮助获取字符串数组从arrays.xml文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是想从一个数组,我在我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆