gpt4 book ai didi

java - 使用 onActityResult 传递 ArrayList

转载 作者:行者123 更新时间:2023-12-02 06:41:46 25 4
gpt4 key购买 nike

我有一个自定义图库,我可以在其中选择图像并将图像的路径写入 ArrayList。自定义图库是从我的 MainActivity 类中使​​用 onActivityResult Intent 调用的。问题是,在我的自定义画廊中,ArrayList 是正确的(当我选择 4 个图像时,我得到 4 个带有 ArrayList 中的图像路径的字符串),但是当我将 ArrayList 从画廊传递回 MainActivity 时,我只剩下 1 个 ImagePath ArrayList...希望你能帮助我...

在MainActivity.java中启动 Activity

Intent in = new Intent(getApplicationContext(), AndroidCustomGalleryActivity.class);
startActivityForResult(in, 500);

填充自定义图库中的ArrayList并将Intent发送回Main

final Button selectAll = (Button) findViewById(R.id.selectAll);
selectAll.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

final int thmbnls = thumbnailsselection.length;
//CheckBox cb = (CheckBox)findViewById(R.id.itemCheckBox);
//int cbId = cb.getId();

all = true;
String allstring = String.valueOf(all);
Log.d("BOOLONCLICK", allstring);

for(int i =0; i<thmbnls; i++)
{
thumbnailsselection[i] = true;

path = new ArrayList<String>();
path.add(arrPath[i]);
String test = path.toString();
Log.d("ArrayList", test);
pfade = path.toArray(new String[path.size()]);
}

Intent intent = new Intent();
intent.putStringArrayListExtra("values", path);
setResult(RESULT_OK, intent);
finish();
}
});

在Main中接收Intent:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch(requestCode){
case 500:
if(resultCode == RESULT_OK){


pfade = (ArrayList<String>) data.getStringArrayListExtra("values");
//Log.d("SINGLEPFADE", pfade[0]);
//filePath = (TextView)findViewById(R.id.idTxtImagePath);
//int bilder = pfade.size();
String test = pfade.toString();
//filePath.setText(bilder);
//String test = String.valueOf(bilder);
Log.d("AnzahlBilder", test);
}
break;
}


}

最佳答案

因为您在循环内重新创建了ArrayList

移动此行:

path = new ArrayList<String>();

for循环之前

关于java - 使用 onActityResult 传递 ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19078445/

25 4 0