java对startActivityForResult的响应
我正在尝试使用startActivityForResult对一项活动的结果进行响应。我得到了预期的结果,但不确定如何回应结果。我想做的是根据结果调用不同的ArrayList(这是一个资源)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle d = data.getExtras();
String oil = d.getString("oil");
Resources res = getResources();
String[] oil_info = res.getStringArray(R.array.OIL);
...
}
}
我想要R阵列。根据结果更换机油。i、 e.如果oil
='BASIL'改变R.数组。加油到右排。罗勒。我想制作一个hashmap,但不知道如何放置R.array。在hashmap中添加油,因为不能在hashmap中添加原语。我对安卓和java还很陌生,所以我相信有更好的方法可以做到这一点。任何帮助都将不胜感激。谢谢
# 1 楼答案
你所尝试的实际上是一种永久存储的尝试。这不允许用于“Res”文件夹或“R.smthing.smthing”数据。 使用
shared preferences
进行基本存储。 查看是否可以通过sharedPreferences
保存数组,或者使用序列化或SQLite数据库# 2 楼答案
使用
getIdentifier()
满足以下要求例如,在数组类型2中,有不同值的油和罗勒。 你可以像R.array一样访问。油和R.阵列。罗勒
在上面的代码中,如果字符串
oil
是"OIL"
,那么id
将变成R.array.OIL
,而oil
是"BASIL"
,那么id
将变成R.array.BASIL