Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 对startActivityForResult的响应_Java_Android - Fatal编程技术网

Java 对startActivityForResult的响应

Java 对startActivityForResult的响应,java,android,Java,Android,我正在尝试使用startActivityForResult对活动的结果进行响应。我得到了预期的结果,但不确定如何回应结果。我想做的是根据结果调用不同的ArrayList(这是一个资源) protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode

我正在尝试使用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.array.OIL。i、 e.如果
oil
='BASIL'将R.array.oil更改为R.array.BASIL。我曾考虑过制作一个hashmap,但由于无法在hashmap中放置原语,因此无法将R.array.OIL放入hashmap。我对android和java还很陌生,所以我相信有更好的方法来实现这一点。任何帮助都将不胜感激。谢谢。

您尝试的实际上是永久存储。“Res”文件夹或“R.smthing.smthing”数据不允许这样做。 使用
共享首选项
进行基本存储。 查看是否可以通过
SharedReferences
保存数组,或者使用序列化或SQLite数据库。

使用
getIdentifier()
满足以下要求

e、 g.在数组类型2中,有不同值的油和罗勒。 您可以访问R.array.OIL和R.array.BASIL

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();
        int id = res.getIdentifier(oil, "array", getPackageName());
        String[] oil_info = res.getStringArray(id);
        ...
    } 
}

在上面的代码中,如果字符串
oil
“oil”
,则
id
将成为
R.array。oil
oil
“BASIL”
id
将成为
R.array.BASIL

@NCAggie它是否为您工作,如果不工作,请在执行应用程序之前清理项目。@NCAggie如果您认为我的答案对您的问题是正确的,请标记它。这就是stackoverflow的工作原理。再见。。