futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

SDカードの動画ファイル一覧を取得。選択したファイルを再生。。。できない\(^o^)/

うーん。

package com.futabooo.testapp;

import java.io.File;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends Activity{

    //動画ファイルのあるディレクトリ
    String Path = Environment.getExternalStorageDirectory().getPath() + "/" + "external_sd/test_animation/";
    String fileName = null;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        showFileName(getFileNameList(Path));
        
        VideoView videoView = (VideoView) findViewById(R.id.surface);
        videoView.setVideoPath(Path + fileName);
        videoView.start();
    }
    
    //選択ボックスで表示するファイル名のリストを作成
    public String[] getFileNameList (String str) {
        File dir = new File(str);
        final File[] files = dir.listFiles();
        final String[] str_items;
        str_items = new String[files.length];
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            str_items[i] = file.getName();
        }
        return str_items;
    }
    
    //ファイルの選択ボックスを表示
    public void showFileName (String[] str_items){
        final String[] files = str_items;
        new AlertDialog.Builder(getApplicationContext())
            .setTitle("ファイルを選択")
            .setItems(str_items, new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int which) {
                    if (which < files.length){
                        fileName = files[which];
                        Toast.makeText(MainActivity.this, 
                                "ファイルパス:「" + fileName + "」を選択しました。", 
                                Toast.LENGTH_LONG).show();
                    }
                }
            }).show();
    }
}