-1

アプリケーションが他のアクティビティで作成している他の特定のカタログ内にあるカタログ名をリストビューに入力したいと考えています。

doInBackground メソッドは次のとおりです。

@Override
    protected ArrayList<String> doInBackground(Void... arg0) {
        ArrayList<String> wynik = new ArrayList<String>();
        File katalog = new File(Environment.getExternalStorageDirectory().getPath()+"/DBConnector/Projekty/");
        File[] projekty = katalog.listFiles();
        for (File projekt : projekty) {
            if (projekt.isDirectory()) {
                wynik.add(projekt.getName());
            }
        }
        return wynik;
    }

NullPointerException をスローしています。私の知る限り、そこにフォルダーがなくても、ArrayListを空のままにして渡す必要があります(後でonPostExecuteでif(result.isEmpty())を使用して、それに関する情報をユーザーに提供するか、実際に入力しますリストビューが空でない場合 - 非常によく似たコードが他の場所で機能し、リストビューに結果セットのデータを入力しました)。それでも、そこには複数のフォルダーがあります。ばかげた間違いを犯したのではないかと心配していますが、それを見ることができません。助けていただければ幸いです。

編集:助けになったのは、日食を再起動することでした。最初にそれについて考えるべきでしたが、どうしてそれが起こったのかまだわかりません.

4

1 に答える 1

0

logcat がなければ、確実に言うのは非常に困難です。

  1. 外部ストレージにアクセスできますか? (マニフェスト許可)
  2. ファイルカタログは有効ですか? または単にヌルですか?
  3. File[] プロジェクトは空の配列を返していますか?

ブレークポイントを使用して、上記のポイントを確認してください。

于 2013-09-12T14:21:34.917 に答える