android - 如何在 Android 应用程序中使用 string.xml 文件值

标签 android android-layout

这是代码..

string.xml

<?xml version="1.0" encoding="utf-8" ?> 
- <resources>
- <string-array name="countries_array">
  <item>Bahrain</item> 
  <item>Bangladesh</item> 
  <item>Barbados</item> 
  <item>Belarus</item> 
  <item>Belgium</item> 
  <item>Belize</item> 
  <item>Benin</item> 
  </string-array>
  </resources>

布局

list_item.xml

<?xml version="1.0" encoding="utf-8" ?> 
  <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:textSize="16sp" />

主.xml

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
  <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 
  </LinearLayout>

.java文件

package examples.com;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class HelloListViewActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      String[] countries = getResources().getStringArray(R.array.countries_array);
      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, countries));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);

      lv.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
        }
      });
    }
} 

这是在 xml 文件中生成一些名称的动态列表的代码。它将名称列表作为来自 xml 文件的输入并动态显示。从 xml 文件中获取数据时,出现 undefined symbol 的错误 -

error is in this line

      String[] countries = getResources().getStringArray(R.array.countries_array);

cant find symbol array in R.

countries_array is in string.xml file. If this method of accessing it is wrong then how to access it?
Thanx in advance.

最佳答案

将您的数组声明放入 res/values 目录中名为 arrays.xml 的文件中。这是当您尝试键入 R.array.countries_array 作为资源标识符时系统正在查看的位置。换句话说,

res/values/arrays.xml

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
  <string-array name="countries_array">
    <item>Bahrain</item> 
    <item>Bangladesh</item> 
    <item>Barbados</item> 
    <item>Belarus</item> 
    <item>Belgium</item> 
    <item>Belize</item> 
    <item>Benin</item> 
    </string-array>
</resources>

喂!

关于android - 如何在 Android 应用程序中使用 string.xml 文件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548618/

相关文章:

android - 减少ImageView

android - 如何构建 "right to left"线性布局?

android - 显示 HttpsURLConnection 发送的实际原始数据 + HTTPS header

java - 如何通过按下按钮停止循环

android - 将图标与 ActionBar 的主页按钮对齐

java - 我没有收到自定义选项卡的图标

java - 如何在Android中运行jar文件中的类 Activity ?

带有 XML 的 Android 按钮样式背景

android - react native 中每一行的 renderRow 索引

android - 带有动画的Android应用程序的自定义标签栏