我試圖製作一個應用程序,顯示位於sd卡上指定文件夾中的list
的.txt
文件。當用戶選擇一個文件時,我希望應用程序打開它並閱讀它的內容。點擊文件時如何從sd列表中讀取txt文件? Android
有沒有在我的list
上顯示擴展名爲.txt
的文件的方法?
這是我用來打開文件和文字的代碼,當用戶選擇一個文件:
public class TxtView extends ListActivity {
private File currentDir;
private FileArrayAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentDir = new File("/sdcard/Txt");
fill(currentDir);
}
private void fill(File f)
{
File[]dirs = f.listFiles();
this.setTitle("Current Dir: "+f.getName());
List<Option>dir = new ArrayList<Option>();
List<Option>fls = new ArrayList<Option>();
try{
for(File ff: dirs)
{
if(ff.isDirectory())
dir.add(new Option(ff.getName(),"Folder",ff.getAbsolutePath()));
else
{
fls.add(new Option(ff.getName(),"File Size: "+ff.length(),ff.getAbsolutePath()));
}
}
}catch(Exception e)
{
}
Collections.sort(dir);
Collections.sort(fls);
dir.addAll(fls);
if(!f.getName().equalsIgnoreCase("Txt"))
dir.add(0,new Option("..","Parent Directory",f.getParent()));
adapter = new FileArrayAdapter(TxtView.this,R.layout.file_view,dir);
this.setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Option o = adapter.getItem(position);
if(o.getData().equalsIgnoreCase("folder")||o.getData().equalsIgnoreCase("parent directory")){
currentDir = new File(o.getPath());
fill(currentDir);
}
else
{
}
}
}
謝謝,我會開始練習你給我的東西,看看我能得到什麼,直到現在我可以編輯代碼,我的互聯網斷開了。感謝您的關注和幫助。 – 2013-02-28 05:49:03