Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:本地化。如何将xml字符串读入数组_Java_Android_Xml_Localization_Arrays - Fatal编程技术网

Java 安卓:本地化。如何将xml字符串读入数组

Java 安卓:本地化。如何将xml字符串读入数组,java,android,xml,localization,arrays,Java,Android,Xml,Localization,Arrays,我创建了一个显示水果列表的应用程序,当选择新活动时,会显示水果的图像和名称。但是,我需要本地化应用程序,我的字符串存储在Java中的字符串数组中,而不是存储在strings.xml Values文件夹中 是否有一种将xml字符串读入数组的简单方法?如果本地设置切换为法语,该方法是否有效。(fr值) package com.example.favoriteFruit; 导入android.os.Bundle; 导入android.app.ListActivity; 导入android.conten

我创建了一个显示水果列表的应用程序,当选择新活动时,会显示水果的图像和名称。但是,我需要本地化应用程序,我的字符串存储在Java中的字符串数组中,而不是存储在strings.xml Values文件夹中

是否有一种将xml字符串读入数组的简单方法?如果本地设置切换为法语,该方法是否有效。(fr值)

package com.example.favoriteFruit;
导入android.os.Bundle;
导入android.app.ListActivity;
导入android.content.Context;
导入android.content.Intent;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.TextView;
公共类收藏夹活动
{
//包含水果类型的字符串数组
静态最终字符串[]水果=新字符串[]
{
“苹果”、“橘子”、“香蕉”
};
静态最终字符串SELECTEDFRUIT=“com.example.favoritefruit.SELECTEDFRUIT”;
@重写//onCreate方法
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/*使用java布局而不是xml布局。
setListAdapter接受列表适配器或阵列适配器
创建一个新类ArrayAdapter类*/
setListAdapter(新ListArrayAdapter(这个,水果));
}
//创建移动到新活动的意图
public void onListItemClick(列表视图l、视图v、整数位置、长id)
{
super.onListItemClick(左、右、位置、id);
试一试{
Class test=Class.forName(“com.example.favoriteFruit.AppleActivity”);
意向意向=新意向(favoritefruit.this,test);
TextView TextView=(TextView)v.findViewById(R.id.label);
String fruit=textView.getText().toString();
ImageView水果图像=(ImageView)v.findViewById(R.id.logo);
//intent.putExtra(“图像”,“+);
目的:额外添加(精选水果、水果);
星触觉(意向);
}catch(classnotfounde异常){
e、 printStackTrace();}
}
}
类ListArrayAdapter扩展了ArrayAdapter
{
//上下文允许检索布局等资源
私人最终语境;
私人最终字符串[]水果;
//创建ArrayAdpater
公共ListArrayAdapter(上下文,字符串[]水果)
{
超级(上下文、右布局、活动、喜爱的水果、水果);
this.context=上下文;
这个水果=水果;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
//充气机动态加载布局
视图行视图=充气器。充气(R.layout.activity\u favority\u fault,parent,false);
//获取文本视图
TextView TextView=(TextView)rowView.findViewById(R.id.label);
//获取ImageView
ImageView=(ImageView)rowView.findViewById(R.id.logo);
//根据位置将文本设置为字符串值
setText(水果[位置]);
//根据项目在字符串数组中的位置更改项目
串水果位置=水果[位置];
系统输出打印LN(位置);
//将图像指定给相关水果
if(果位等于(“苹果”))
{
setImageResource(R.drawable.image\u apple);
} 
else if(果位等于(“橙色”))
{
setImageResource(R.drawable.image\u apple);
} 
else if(果位等于(“香蕉”))
{
setImageResource(R.drawable.image\u apple);
}
//返回布局
返回行视图;
}
}

要从资源中获取xml字符串数组,请使用:

getResources().getStringArray(R.array.string_array_name);

是的,如果您有资源的本地化版本,它将根据用户的设备设置自动加载相应的版本。您可以创建单个字符串的本地化xml资源,并使用单个字符串数组资源(按id/name引用字符串资源)

要从资源中获取xml字符串数组,请使用:

getResources().getStringArray(R.array.string_array_name);

是的,如果您有资源的本地化版本,它将根据用户的设备设置自动加载相应的版本。您可以生成单个字符串的本地化xml资源,并使用单个字符串数组资源,该资源通过id/name引用字符串资源

感谢您的解决方案,这比我预期的要简单得多。这已经很旧了,但是,有人可以在代码中显示关于引用单个数组资源中的一组字符串资源的最后一点吗?感谢您的解决方案,这比我预期的要容易得多。这已经很旧了,但是有人可以在代码中显示关于引用单个数组资源中的一组字符串资源的最后一点吗?