2

私はアンドロイドアプリケーションを作っています。ボタンをクリックすると、pdf がある特定のフォルダーを開くだけで、ユーザーはそのフォルダーから読み取る PDF を選択できます。

私はpdfフォルダからすべてのファイルをリストすることができましたが、それは私が必要とするものではありません. 最も論理的な解決策は、既に Android OS の一部である「マイ ファイル」アプリでフォルダを開くことです。Androidでこれを行うホエーはありますか?

4

3 に答える 3

2

気をつけて。すべての Android デバイスに「マイ ファイル」アプリがあるわけではありません。したがって、最善の方法は、独自のリスト/ファイル エクスプローラーを作成することです。

于 2012-08-23T07:52:53.640 に答える
1

これがファイルをリストするための私のコードです。クリックしてPDFファイルを開く方法です。

    public class AndroidListFilesActivity extends ListActivity {

    private List<String> fileList = new ArrayList<String>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        File root = new File(Environment.getExternalStorageDirectory()
                .getAbsolutePath());    
        File pdf = new File(root, "PDF");
        ListDir(pdf);
    }

    void ListDir(File f) {
        File[] files = f.listFiles();
        fileList.clear();
        for (File file : files) {
            fileList.add(file.getPath());
        }

        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, fileList);
        setListAdapter(directoryList);
    }

}
于 2012-08-23T07:58:01.083 に答える
1

このコードは、より良い解決策である「マイファイル」アプリなしで機能しています。

    public class AndroidListFilesActivity extends ListActivity {

    File root;
    File pdf;

    private List<String> fileList = new ArrayList<String>();


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        root = new File(Environment.getExternalStorageDirectory()
                .getAbsolutePath());
        // ListDir(root);

        pdf = new File(root, "PDF");
        ListDir(pdf);
    }

    void ListDir(File f) {
        File[] files = f.listFiles();
        fileList.clear();
        for (File file : files) {
            fileList.add(file.getPath());
        }

        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, fileList);

        setListAdapter(directoryList);

    }

    public void onListItemClick(ListView parent, View v, int position, long id) {
        //selection.setText(fileList.indexOf(simple_list_item_1));
        OpenPdf(fileList.get(position).toString());
    }

    public void OpenPdf(String path)
    {
          File file = new File(path);
          if (file.exists()) {
              Uri p = Uri.fromFile(file);
              Intent intent = new Intent(Intent.ACTION_VIEW);
              intent.setDataAndType(p, "application/pdf");
              intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

              try {
                  startActivity(intent);
              } 
              catch (ActivityNotFoundException e){
              }
          }
    }
}
于 2012-09-01T10:47:18.940 に答える