【问题标题】:File list error on load Android ListActivity加载 Android ListActivity 时出现文件列表错误
【发布时间】:2013-08-27 07:05:01
【问题描述】:

我收到了这个错误,我不知道是谁出了问题。在某些设备上运行 de app,但在其他设备上会出现此错误。

//这是代码

package com.neoadn.takerenamephoto;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListaFotos extends ListActivity {

private File file, temp_file;
private List<String> myList;
String root_sd;
File imagen;
String direccionFile;

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getListView().setBackgroundResource(R.drawable.fondo_p);

    myList = new ArrayList<String>();   

    root_sd = Environment.getExternalStorageDirectory().toString();
    file = new File( root_sd + "/Pictures/TRPHOTO" ) ;       
    File list[] = file.listFiles();

    for( int i=0; i< list.length; i++)
    {
            myList.add( list[i].getName() );
    }

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, myList ));

第 41 行是:

    for( int i=0; i< list.length; i++)

这显示了一些文件夹中的文件和文件夹的列表活动。

更新:

最后我用这个来解决问题:(如果列表不为空,则加载。如果为空,则不加载)

    if(list != null) {
    for( int i=0; i< list.length; i++) {
        // do your for loop
    }
}

【问题讨论】:

  • 你知道错误什么时候出现吗?
  • 发布您的代码并检查该行:com.neoadn.takerenamephoto.ListaFotos.onCreate(ListaFotos.java:41)
  • 它在您的日志中说您在 ListaFotos 类的第 41 行有一个 NullPointerException。在 Eclipse 中,您甚至可以双击该行,它会直接引导您找到有问题的行
  • 已更新。第 41 行是:for(int i=0;i
  • 你为什么不检查外部存储是否存在或已安装!

标签: android file list directory


【解决方案1】:

当以下语句返回 null 时会发生这种情况:

File list[] = file.listFiles();

当您的目录“文件”不包含任何文件时,可能会发生这种情况。由于您的列表 list 因此为空,因此以下语句

for( int i=0; i< list.length; i++)

因 NullPointerException 而崩溃。我建议您在进入 for 循环之前检查您的列表变量是否为空,如下所示:

if(list != null) {
    for( int i=0; i< list.length; i++) {
        // do your for loop
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多