首页 > 解决方案 > 获取空值?

问题描述

只是在这个项目上工作, getImageList() 方法在正确的位置传递正确的值后返回空值。我还做了一些记录来验证它。

请看一下。

这是代码:

public class GalleryImage extends AppCompatActivity {

private ArrayList<StoryModel> arrayList;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallery_image);


ListView listView = findViewById(R.id.galleryListView);
Intent intent = getIntent();

String file = intent.getStringExtra("fileName");
String[] files = intent.getStringArrayExtra("filesName");

StoryModel model;

GalleryImage image = new GalleryImage();
arrayList = new ArrayList<>();

for (String s : files) {
    model = new StoryModel();
    String concat = file + "/" + s;
    model.setPath(concat);
    arrayList.add(model);
    Log.i(TAG, "onCreate: Path " + model.getPath());
    Log.i(TAG, "onCreate: ArrayList " + arrayList.add(model));
    Log.i(TAG, "onCreate: getImageList: " + image.getImageList());
}

CustomAdapter galleryAdapter = new CustomAdapter(GalleryImage.this, R.layout.whatsapp_gallery_image, image.getImageList(), files);
listView.setAdapter(galleryAdapter);
}

private ArrayList<StoryModel> getImageList() {
return arrayList;
}

}

这是logcat:

2020-12-16 23:39:06.082 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: Path /storage/emulated/0/WhatsApp Status Downloader/0914b4b418414982960aabe18f718e1d.jpg

2020-12-16 23:39:06.082 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: ArrayList true

2020-12-16 23:39:06.082 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: getImageList: null

2020-12-16 23:39:06.083 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: Path /storage/emulated/0/WhatsApp Status Downloader/bf51fb0d3efa4ec89b71b86bfe0534f9.jpg

2020-12-16 23:39:06.083 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: ArrayList true

2020-12-16 23:39:06.083 2628-2628/com.example.whatsappstatusdownloader I/GalleryImage: onCreate: getImageList: null

标签: javaandroid

解决方案


请注意代码中的 arrayList 声明。你有两个。在 OnCreate 你这样声明它:

arrayList = new ArrayList<>();

然后你填充这个列表,而 image.getImageList() 返回另一个实例:

private ArrayList<StoryModel> arrayList;

推荐阅读