Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:列表中特定文件的路径_Java_Android_Listview_Path - Fatal编程技术网

Java Android:列表中特定文件的路径

Java Android:列表中特定文件的路径,java,android,listview,path,Java,Android,Listview,Path,我有一个wav文件列表在一个文件夹中的外部存储。我用ListView显示此列表,这是我的代码: public class MainActivity extends Activity { final StringBuffer stringbuff = new StringBuffer(); private ListView mainListView ; private ArrayAdapter<String> listAdapter ; @

我有一个wav文件列表在一个文件夹中的外部存储。我用ListView显示此列表,这是我的代码:

public class MainActivity extends Activity {

    final StringBuffer stringbuff = new StringBuffer();

    private ListView mainListView ;  
    private ArrayAdapter<String> listAdapter ;  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mainListView = (ListView) findViewById( R.id.mainListView );  
        ArrayList<String> List = new ArrayList<String>();  

        File storage = Environment.getExternalStorageDirectory();

        File file = new File(storage,"/folder/");

        if (file.exists() && file.isDirectory()) {
            for (String s : file.list()) {
                stringbuffer.append(s + " ");
                List.addAll( Arrays.asList(s) );
            }
        }

        listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, R.id.rowTextView,List); 
        mainListView.setAdapter( listAdapter );  

    }
公共类MainActivity扩展活动{
final StringBuffer stringbuff=新StringBuffer();
私有ListView主ListView;
专用阵列适配器列表适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainListView=(ListView)findViewById(R.id.mainListView);
ArrayList=新建ArrayList();
File storage=Environment.getExternalStorageDirectory();
File File=新文件(存储“/folder/”;
if(file.exists()&&file.isDirectory()){
对于(字符串s:file.list()){
stringbuffer.append(s+“”);
List.addAll(Arrays.asList);
}
}
listAdapter=new ArrayAdapter(this,R.layout.simplerow,R.id.rowTextView,List);
mainListView.setAdapter(listAdapter);
}

我希望单击一个按钮可以显示所选文件的路径。我如何才能做到这一点?

下面的代码将用toast显示文件路径

mainListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        String filepath = new File(storage + "/folder/"+ List.get(arg2)).getAbsolutePath();
        Toast.makeText(getApplicationContext(), filepath, Toast.LENGTH_LONG).show();
    }
});
mainListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
String filepath=new File(storage+“/folder/”+List.get(arg2)).getAbsolutePath();
Toast.makeText(getApplicationContext(),filepath,Toast.LENGTH_LONG.show();
}
});

您需要添加一个监听器

AdapterView.OnItemClickListener openSelection = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
            String p = (String) arg0.getItemAtPosition(arg2);
            Toast.makeText(UploadFilePage.this, p, Toast.LENGTH_LONG).show();
        }
};

mainListView.setOnItemClickListener(openSelection);
AdapterView.OnItemClickListener openSelection=new AdapterView.OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
字符串p=(字符串)arg0.getItemAtPosition(arg2);
Toast.makeText(UploadFilePage.this,p,Toast.LENGTH_LONG.show();
}
};
mainListView.setOnItemClickListener(openSelection);

考虑使用自定义ArrayAdapter抱歉,但我必须在其中添加此部分,因为我想通过在列表中选择一个文件,通过一个按钮,我可以看到此文件的路径。只需将其添加到mainListView.setAdapter(listAdapter)之后;当您单击一行时,您将看到地址