gpt4 book ai didi

java - 在 onActivityResult 中设置的列表,数据不粘

转载 作者:行者123 更新时间:2023-11-29 08:39:45 25 4
gpt4 key购买 nike

我需要使用从 onActivityResult 返回的数据设置一个 List 变量。然后在按下按钮时使用该列表执行操作。

如果我在 onActivityResult 中设置列​​表的 Log.d 之后,它会正确显示列表。但是,如果我将列表的第二个 Log.d 放在 onResume 中或按下按钮时,第二个日志会将列表显示为空。

不是完整的代码,只有相关的部分。

public class ImageSelectActivity extends AppCompatActivity {
public static List<String> path;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_select);
Button btnSelectImages = (Button) findViewById(R.id.btnSelect);
btnSelectImages.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MultiImageSelector selector = MultiImageSelector.create(ImageSelectActivity.this);
selector.count(12);
selector.showCamera(true);
selector.start(ImageSelectActivity.this, REQUEST_IMAGE);
}
});

Button btnImagesLog = (Button) findViewById(R.id.btnImages);
btnImagesLog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("path",""+path); //path returns null even AFTER clicking the select button and selecting images.
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_IMAGE){
if(resultCode == RESULT_OK){
// list of image paths
List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
Log.d("images",""+path); //correctly displays path of all selected images.
}
}
}

最佳答案

您的问题是阴影:

您在该方法中声明了一个全新的列表对象:

// list of image paths
List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);

那是局部变量!因此,您不是为 ImageSelectActivity.path 赋值,而是为该局部变量赋值。而 ImageSelectActivity.path 只保留其值。

所以,答案很简单:把那行变成

// list of image paths
path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);

你应该很好。好吧,除了使用 static 变量通常不是一个好主意之外。

除此之外:这是真正的基本内容。如果您不了解此类内容,我建议您在进一步使用 Android 之前首先学习有关这些 Java 基础知识的教育 Material 。例如:通过 Oracle tutorials 工作;至少是基本的!

关于java - 在 onActivityResult 中设置的列表,数据不粘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com