1
public String[] get_file_names_from_SD() /* Compiler complains here */ 
{
    String state = Environment.getExternalStorageState();
    if (state.equals(Environment.MEDIA_MOUNTED)) {
        File root = Environment.getExternalStorageDirectory();
        File dir = new File(root.getAbsolutePath() + "/journal_storage");
        if (dir.exists() & dir.isDirectory()) {
            return (dir.list());            
        }

    } else {
        Toast.makeText(getActivity(), "Media Mounted Issue", Toast.LENGTH_SHORT).show();
    }
}

そのため、文字列の配列を含むものを返しdir.list()ていますが、何らかの理由でコンパイラが「このメソッドは String[] 型の結果を返す必要があります」というエラーを表示しています。

Android のドキュメントによると、このメソッドは文字列の配列を返します。

誰が私が間違っているのか教えてもらえますか?

4

4 に答える 4

1

あなたのelseブロックは何も返していません..つまり、エラーがスローされます

else
    {
    Toast.makeText(getActivity(), "Media Mounted Issue", Toast.LENGTH_SHORT).show();
    // return something here .. If nothing , return null
    }
于 2013-07-25T05:47:17.813 に答える