2014-07-29 13:39:09
Mainactivity.java
Package Com.example.sample_4_21;import Java.io.file;import java.util.arraylist;import java.util.List;import Android.app.alertdialog;import Android.app.listactivity;import Android.content.dialoginterface;import Android.os.bundle;import Android.view.keyevent;import Android.view.view;import Android.view.Window;import Android.widget.arrayadapter;import Android.widget.listview;import Android.widget.textview;import Android.widget.Toast; Public classMainactivity extends Listactivity {List<String> filelist =NULL; String RootPath="/"; String Currentpath; String Parentpath; Arrayadapter<String>adapter; Arrayadapter<String>Maadapter; TextView TV; @Overrideprotected voidonCreate (Bundle savedinstancestate) {//TODO auto-generated Method Stubsuper.oncreate (savedinstancestate); Requestwindowfeature (Window.feature_no_title); Setcontentview (R.layout.activity_main); TV=(TextView) Findviewbyid (R.id.mpath); Init (RootPath); } voidinit (String path) {Adapter=NewArrayadapter<string> ( This, R.layout.file_row, getfilelist (path)); Setlistadapter (adapter); Tv.settext (path); Currentpath=path; } List<String>getfilelist (String path) {File F=NewFile (path); File[] Allfile=F.listfiles (); FileList=NewArraylist<string>(); Parentpath=f.getparent (); if(parentpath==NULL) {//f.getparent () is null if it is the root directoryParentpath ="/"; } filelist.add ("Back to ..."+Parentpath); for(File file:allfile) {Filelist.add (File.getpath ()); } returnfilelist; } @Overrideprotected voidOnlistitemclick (ListView L, View V,intPositionLongID) {//TODO auto-generated Method StubSuper.onlistitemclick (l, V, position, id); if(Position = =0) { if(Currentpath = =RootPath) {Toast.maketext ( This,"as the root directory", Toast.length_short). Show (); } Else{init (parentpath); } } Else { if(NewFile (filelist.Get(position)). Isfile ()) {Toast.maketext ( This,"file", Toast.length_short). Show (); } Else if(!NewFile (filelist.Get(position)). CanRead ()) {Toast.maketext ( This,"not readable", Toast.length_short). Show (); } Else{init (filelist.Get(position)); } }} @Override PublicBoolean OnKeyDown (intKeyCode, KeyEventEvent) { //TODO auto-generated Method Stub if(keycode==keyevent.keycode_back&&Event. getaction () = =keyevent.action_up) { if(currentpath==RootPath) { NewAlertdialog.builder ( This). Settitle ("Tips"). Setmessage ("OK, exit?"). Setpositivebutton ("Determine",NewDialoginterface.onclicklistener () {@Override Public voidOnClick (Dialoginterface Dialog,intwhich) { //TODO auto-generated Method StubMainactivity. This. Finish (); }}). Setnegativebutton ("Cancel",NewDialoginterface.onclicklistener () {@Override Public voidOnClick (Dialoginterface Dialog,intwhich) { //TODO auto-generated Method Stub}}). Show (); return true; }Else{init (parentpath); return false; } }Else{ return false; } }}
Activity_main.xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"Xmlns:tools="Http://schemas.android.com/tools"Android:layout_width="match_parent"Android:layout_height="match_parent"Tools:context="${packagename}.${activityclass}"> <TextView Android:id="@+id/mpath"Android:layout_width="match_parent"Android:layout_height="wrap_content"android:textsize="18SP"Android:paddingleft="10DP"Android:textcolor="#00ff33"/> <ListView Android:id="@android: Id/list"Android:layout_width="match_parent"Android:layout_below="@+id/mpath"Android:paddingleft="10DP"Android:layout_height="wrap_content"/></relativelayout>
File_row.xml List--item Items
<?xml version="1.0"encoding="Utf-8"?><TextView Android:id="@+id/text1"xmlns:android="http://schemas.android.com/apk/res/android"Android:layout_width="wrap_content"Android:layout_height="20DP"android:textsize="15SP"Android:textcolor="#000000"/>