[java] arrays.xml 파일에서 문자열 배열을 얻는 방법

내 .NET Core에있는 배열의 목록을 표시하려고합니다 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);
    }
}


답변

귀하의 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은 숫자를 만들거나 정의에 공백을 넣으면 강제 종료를 유발할 수 있습니다.

선행 또는 후행 공백 없음과 같이 정의되어 있는지 확인하십시오.


답변