0
我已經填充了使用SD卡內容的列表視圖,但它在單獨的列表活動中打開。我想在我自己的活動中填寫自己的listview名爲「list_local_content」。這裏是代碼..如何使用SD卡內容填充自己的列表視圖而不是單獨的列表活動
公共類Local_Contents擴展ListActivity {
private File currentDir;
private FileArrayAdapter adapter;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
currentDir = new File("/");
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>files = new ArrayList<Option>();
try{
for(File ff: dirs)
{
if(ff.isDirectory())
dir.add(new Option(ff.getName(),"Folder",ff.getAbsolutePath()));
else
files.add(new Option(ff.getName(),"File Size: "+ff.length(),ff.getAbsolutePath()));
}
}catch(Exception e){
}
Collections.sort(dir);
Collections.sort(files);
dir.addAll(files);
if(!f.getName().equalsIgnoreCase("sdcard"))
dir.add(0,new Option("..","Parent Directory",f.getParent()));
adapter = new FileArrayAdapter(Local_Contents.this,R.layout.listview_filler,dir);
this.setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id){
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
onFileClick(o);
}
private void onFileClick(Option o)
{
Toast.makeText(this, "File Clicked: "+o.getName(), Toast.LENGTH_SHORT).show();
}
}
和處理filearrayadapter是
公共類FileArrayAdapter擴展ArrayAdapter {
3210 其他類}
我如何填寫我的活動我自己的ListView用更少的修改這個代碼...
謝謝,這工作就像一個關鍵字對我來說,所以我做到了...... :-) –