如何在同一版面中创建2个目录列表? 一个用于显示FTP服务器中的文件和文件夹,另一个用于显示本地文件/文件夹。
编辑: 我可以使用以下行将arrayadapter放到Listview中: 的 listView.setAdapter(适配器); 所以我想我可以在同一个布局中创建更多的目录列表。 但是当我运行应用程序时,单击文件夹,没有任何效果。这是我的所有代码。
public class FileChooser extends ListActivity {
private File currentDir;
private FileArrayAdapter adapter;
private TextView myPath;
ListView listViewLocal;
ListView listFtp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myPath = (TextView)findViewById(R.id.path);
listViewLocal = (ListView) findViewById(R.id.listlocal);
//listFtp = (ListView) findViewById(R.id.);
currentDir = new File("/sdcard/");
fill(currentDir);
}
private void fill(File f)
{
File[]dirs = f.listFiles();
//this.setTitle("Current Dir: "+f.getName());
myPath.setText("Location: " + 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("sdcard"))
dir.add(0,new Option("..","Parent Directory",f.getParent()));
adapter = new FileArrayAdapter(FileChooser.this,R.layout.file_view,dir);
listViewLocal.setAdapter(adapter);
//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
{
onFileClick(o);
}
}
private void onFileClick(Option o)
{
Toast.makeText(this, "File Clicked: "+o.getName(), Toast.LENGTH_SHORT).show();
}
}
提前致谢,