Android 字符串[]数组工作不正常
字符串[]数组有问题。我从 & 但是,我仍然没有从链接中找到任何解决方案 我想要什么: 我正在开发一个自定义相机应用程序。我有一个文件夹,在其中保存捕获的图像。此外,我还有一个ImageView。当我的应用程序启动时,文件夹的图像[或位图]被设置到该ImageView中(始终将文件夹的第一个图像设置到ImageView中) 下面是我的代码Android 字符串[]数组工作不正常,android,arrays,string,Android,Arrays,String,字符串[]数组有问题。我从 & 但是,我仍然没有从链接中找到任何解决方案 我想要什么: 我正在开发一个自定义相机应用程序。我有一个文件夹,在其中保存捕获的图像。此外,我还有一个ImageView。当我的应用程序启动时,文件夹的图像[或位图]被设置到该ImageView中(始终将文件夹的第一个图像设置到ImageView中) 下面是我的代码 private void loadImageInImageView() { Uri[] mUrls; String[] mFi
private void loadImageInImageView() {
Uri[] mUrls;
String[] mFiles = new String[0];
File file = new File(android.os.Environment.getExternalStorageDirectory(), "CameraApp/Images");
File[] imageList = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String name) {
return ((name.endsWith(".jpg")) || (name.endsWith(".png")) || (name.endsWith(".mp4")));
}
});
if (mFiles.length >= 0) {
Toast.makeText(this, "No Captured Images", Toast.LENGTH_SHORT).show();
} else {
mFiles = new String[imageList.length];
for (int i = 0; i < imageList.length; i++) {
mFiles[i] = imageList[i].getAbsolutePath();
}
mUrls = new Uri[mFiles.length];
for (int i = 0; i < mFiles.length; i++) {
mUrls[i] = Uri.parse(mFiles[i]);
imgBtnThumbnail.setImageURI(mUrls[i]);
}
}
}
private void loadImageInImageView(){
Uri[]mUrls;
字符串[]mFiles=新字符串[0];
File File=新文件(android.os.Environment.getExternalStorageDirectory(),“CameraApp/Images”);
File[]imageList=File.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
返回((name.endsWith(“.jpg”))| |(name.endsWith(“.png”))| |(name.endsWith(“.mp4”));
}
});
如果(mFiles.length>=0){
Toast.makeText(这是“无捕获图像”,Toast.LENGTH_SHORT).show();
}否则{
mFiles=新字符串[imageList.length];
对于(int i=0;i
在上述代码中[当文件夹为空时]:
if(mFiles.length>0)
它向我显示了一个错误if(mFiles.length>=0)
然后它显示了与上面相同的错误if(mFiles==null)
它也不工作,因为我在上面的代码中初始化了字符串[]
String[]mFiles=新字符串[0]代码>
因此,它也不起作用
private void loadImageInImageView(){
private void loadImageInImageView() {
Uri[] mUrls;
File[] imageList
File file = new File(android.os.Environment.getExternalStorageDirectory(), "CameraApp/Images");
imageList = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String name) {
return ((name.endsWith(".jpg")) || (name.endsWith(".png")) || (name.endsWith(".mp4")));
}
});
if (imagelist==null && imageList.length == 0) {
Toast.makeText(this, "No Captured Images", Toast.LENGTH_SHORT).show();
} else {
for (int i = 0; i < imageList.length; i++) {
imgBtnThumbnail.setImageURI(Uri.parse(imageList[i].getAbsolutePath()););
}
}
}
Uri[]mUrls;
文件[]图像列表
File File=新文件(android.os.Environment.getExternalStorageDirectory(),“CameraApp/Images”);
imageList=file.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
返回((name.endsWith(“.jpg”))| |(name.endsWith(“.png”))| |(name.endsWith(“.mp4”));
}
});
if(imagelist==null&&imagelist.length==0){
Toast.makeText(这是“无捕获图像”,Toast.LENGTH_SHORT).show();
}否则{
对于(int i=0;i
试试这个;
但由于for循环,您的图像不断变化 private void loadImageInImageView(){
Uri[]mUrls;
文件[]图像列表
File File=新文件(android.os.Environment.getExternalStorageDirectory(),“CameraApp/Images”);
imageList=file.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
返回((name.endsWith(“.jpg”))| |(name.endsWith(“.png”))| |(name.endsWith(“.mp4”));
}
});
if(imagelist==null&&imagelist.length==0){
Toast.makeText(这是“无捕获图像”,Toast.LENGTH_SHORT).show();
}否则{
对于(int i=0;i
试试这个;
但由于for循环,您的图像不断变化 不要初始化多文件。在添加一些数据时初始化它。 要检查它是否为空,请使用以下命令:
if (mFiles != null && mFiles.length > 0) {
...
}
不要初始化mFiles。在添加一些数据时初始化它。 要检查它是否为空,请使用以下命令:
if (mFiles != null && mFiles.length > 0) {
...
}
如果您想要的函数在图像列表的大小大于零时工作,请尝试下面的代码
private void loadImageInImageView() {
File file = new File(android.os.Environment.getExternalStorageDirectory(), "CameraApp/Images");
File[] imageList = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String name) {
return ((name.endsWith(".jpg")) || (name.endsWith(".png")) || (name.endsWith(".mp4")));
}
});
// conditional operator [ ? : ]
// value = (experssion) ? value if true : value if false
// ref : https://www.tutorialspoint.com/java/java_basic_operators.htm
int imgLength = imageList == null ? 0 : imageList.length;
if(imgLength > 0)
{
String[] mFiles = new String[imgLength];
Uri[] mUrls = new Uri[imgLength];
//merge for condition
for (int i = 0; i < imgLength; i++) {
mFiles[i] = imageList[i].getAbsolutePath();
mUrls[i] = Uri.parse(mFiles[i]);
imgBtnThumbnail.setImageURI(mUrls[i]);
}
}
else
{
Toast.makeText(this, "No Captured Images", Toast.LENGTH_SHORT).show();
}
}
private void loadImageInImageView(){
File File=新文件(android.os.Environment.getExternalStorageDirectory(),“CameraApp/Images”);
File[]imageList=File.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
返回((name.endsWith(“.jpg”))| |(name.endsWith(“.png”))| |(name.endsWith(“.mp4”));
}
});
//条件运算符[?:]
//value=(expersion)?如果值为真:如果值为假
//参考:https://www.tutorialspoint.com/java/java_basic_operators.htm
int imgLength=imageList==null?0:imageList.length;
如果(imgLength>0)
{
字符串[]mFiles=新字符串[imgLength];
Uri[]mUrls=新Uri[imgLength];
//合并条件
对于(int i=0;i
如果您想要的函数在图像列表的大小大于零时工作,请尝试下面的代码
private void loadImageInImageView() {
File file = new File(android.os.Environment.getExternalStorageDirectory(), "CameraApp/Images");
File[] imageList = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String name) {
return ((name.endsWith(".jpg")) || (name.endsWith(".png")) || (name.endsWith(".mp4")));
}
});
// conditional operator [ ? : ]
// value = (experssion) ? value if true : value if false
// ref : https://www.tutorialspoint.com/java/java_basic_operators.htm
int imgLength = imageList == null ? 0 : imageList.length;
if(imgLength > 0)
{
String[] mFiles = new String[imgLength];
Uri[] mUrls = new Uri[imgLength];
//merge for condition
for (int i = 0; i < imgLength; i++) {
mFiles[i] = imageList[i].getAbsolutePath();
mUrls[i] = Uri.parse(mFiles[i]);
imgBtnThumbnail.setImageURI(mUrls[i]);
}
}
else
{
Toast.makeText(this, "No Captured Images", Toast.LENGTH_SHORT).show();
}
}
private void loadImageInImageView(){
File File=新文件(android.os.Environment.getExternalStorageDirectory(),“CameraApp/Images”);
File[]imageList=File.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
return((name.endsWith(“)。