在我的android应用程序中,我从string.xml文件中定义的数组中获取值,并在java活动类中使用它。在我使用阿拉伯字体之前,它的工作很有魅力。
当我将Arrabic字母放在xml文件中时,我无法在java文件中加入它们。
它显示错误"Some characters can not be mapped using cp1252"
这是带Arrabic的xmle数组
<string-array name="country_arrays">
<item>لا شيء</item>
<item>5 – 9</item>
<item>10 – 14</item>
<item>15 – 19</item>
<item>20 – 24</item>
<item>25 – 35</item>
<item>36 – 45</item>
</string-array>
这是java代码
if (s.equals("5 – 9")) {
message = getResources().getString(R.string.listdesc1);
} else if (s.equals("10 – 14")) {
message = getResources().getString(R.string.listdesc1);
} else if (s.equals("15 – 19")) {
message = getResources().getString(R.string.listdesc2);
} else if (s.equals("20 – 24")) {
message = getResources().getString(R.string.listdesc3);
} else if (s.equals("25 – 29")) {
message = getResources().getString(R.string.listdesc4);
} else if (s.equals("30 – 34")) {
message = getResources().getString(R.string.listdesc5);
} else if (s.equals("35 – 39")) {
message = getResources().getString(R.string.listdesc6);
} else if (s.equals("40 – 44")) {
message = getResources().getString(R.string.listdesc7);
} else if (s.equals("45 – 49")) {
message = getResources().getString(R.string.listdesc8);
} else if(s.equals(ذلك)){
message = getResources().getString(R.string.listdesc9);
}else if(s.equals(شيء)){
message=getResources().getString(R.string.listdesc0);
}
txtv2.setText(message);
txtv.setText(getResources().getString(R.string.listtitle1));
// Toast.makeText( arg0.getContext(), message,
是否有任何选项可以传递值,例如在android xml数组中的HTML元素值=“1”。如果有方法,我可以将数组元素与该值进行比较,而不是实际的数组元素名称。
然而,PLZ帮我纠正了这一点。
thx inadvance ..
答案 0 :(得分:1)
<string-array name="country_arrays">
<item>لا شيء</item>
<item>5 – 9</item>
<item>10 – 14</item>
<item>15 – 19</item>
<item>20 – 24</item>
<item>25 – 35</item>
<item>36 – 45</item>
</string-array>
因此,我必须用上面的内容填充java文件中的列表。然后我注意到数据正确传递给lisner方法。如果我们使用字符(A,B ......等),我们不想担心。所有这个问题都是阿拉伯字母。(我不知道为什么布局文件不能正确地将阿拉伯字母传递给java文件)。
然后我按如下方式管理代码。
List<String> list = new ArrayList<String>();
list.add("لا شيء");
list.add("5 - 9");
list.add("10 - 14");
list.add("15 - 19");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
//Log.v(LogApp,"mint value is:" + mint);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String s = arg0.getItemAtPosition(arg2).toString();
if (s.equals("لا شيء")) {
message = getResources().getString(R.string.listdesc0);
} else if (s.equals("5 - 9")) {
message = getResources().getString(R.string.listdesc1);
} else if (s.equals("10 - 14")) {
message = getResources().getString(R.string.listdesc2);
} else if (s.equals("15 - 19")) {
message = getResources().getString(R.string.listdesc3);
} txtv2.setText(message);
//txtv.setText(getResources().getString(R.string.listtitle1));
// Toast.makeText( arg0.getContext(), message,
// Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
@menuka这是您的答案,查看此链接,您已经完成了近90%: - http://w2davids.wordpress.com/android-listview-with-iconsimages-and-sharks-with-lasers/