Android(安卓)实现windows文件资源管理器
16lz
2022-04-22
1)效果图如下
2)关键代码如下
package com.example.filedemo;import java.io.File;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import android.view.View;public class MainActivity extends Activity {private ListView listView1=null;private Button homeButton=null;private Button previousButton=null;private TextView pathTextView=null;/** rootPathString 根目录 * itemsList 存储文件名* pathsList 存储文件路径* */private String rootPathString="/";private List<String> itemsList=null;private List<String> pathsList=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView1=(ListView)findViewById(R.id.listView1);/*进入单击目录*/listView1.setOnItemClickListener(new ListView.OnItemClickListener(){public void onItemClick(AdapterView<?> parent,View view,int position,long arg3){/*获取单击文件*/File file=new File(pathsList.get(position));if(file.isDirectory()){getFiles(pathsList.get(position));}}});/*进入根目录*/homeButton=(Button)findViewById(R.id.homeButton);homeButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {getFiles(rootPathString);}});/*进入上一级目录*/previousButton=(Button)findViewById(R.id.PreviousButton);previousButton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {String currentPathString=pathTextView.getText().toString();if(!currentPathString.equals(rootPathString)){File currentFile=new File(currentPathString);getFiles(currentFile.getParent());}}});pathTextView=(TextView)findViewById(R.id.pathTextView);getFiles(rootPathString);}/** 获取当前目录文件* */private void getFiles(String filePathString){/*显示当前路径*/pathTextView.setText(filePathString);/*显示当前目录文件*/itemsList=new ArrayList<String>();pathsList=new ArrayList<String>();File currentFile=new File(filePathString);File[] files=currentFile.listFiles();if(files!=null&&files.length>0){for(int i=0;i<files.length;i++){File file=files[i];if(file.isDirectory()){itemsList.add(file.getName()+"(dir)");}else {itemsList.add(file.getName()+"(file)");}pathsList.add(file.getPath());}}ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, itemsList);listView1.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
更多相关文章
- AndroidManifest.xml文件详解(activity)(一)
- Fragment的使用简介【Android】
- android用intent打开各种文件
- 用contentResolver+ListView+mediaPlayer实现简单Android音乐播
- android studio 各种令人费解的问题
- Unity3D Android播放视频
- Android(安卓)Log Analysis bugreport
- android http请求并解析返回的xml
- NPM 和webpack 的基础使用