Android 实现windows文件资源管理器

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;
@Override
protected 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() {
@Override
public void onClick(View arg0) {
getFiles(rootPathString);
}
});
/*进入上一级目录*/
previousButton=(Button)findViewById(R.id.PreviousButton);
previousButton.setOnClickListener(new Button.OnClickListener() {
@Override
public 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);
}


@Override
public 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;
}


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值