錯誤我試圖讓一個文件選擇跟隨下面的鏈接 http://www.dreamincode.net/forums/topic/190013-creating-simple-file-chooser/一個關於列表視圖
但是,我得到了錯誤「您的內容必須有一個ListView其id屬性爲‘android.R.id.list’ 「
我google了錯誤,我需要在xml文件中得到一個listview標記。然而,上面的例子並沒有它,它似乎運作良好。
儘管我沒有觸發主頁面中的文件選擇器,但我認爲我的代碼沒有太大差別。你能幫我看看有什麼方法可以解決這個問題嗎?
file_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/fd_text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textStyle="bold" android:layout_marginTop="5dip"></TextView>
<TextView android:id="@+id/fd_text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip"></TextView>
</LinearLayout>
filechooser.java
public class filechooser extends ListActivity{
private fileArrayAdapter adapter;
private File curDir;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.file_view);
curDir = new File("/sdcard/");
fill(curDir);
}
public void fill(File f){
File[] dirs = f.listFiles();
this.setTitle("Current Dir: "+f.getName());
List<fc_option>dir = new ArrayList<fc_option>();
List<fc_option>fls = new ArrayList<fc_option>();
try{
for (File ff: dirs){
if (ff.isDirectory())
dir.add(new fc_option(ff.getName(), "Folder", ff.getAbsolutePath()));
else
fls.add(new fc_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 fc_option("..","Parent Directory", f.getParent()));
adapter = new fileArrayAdapter(this, R.layout.file_view, dir); //get problems
this.setListAdapter(adapter);
}
//@Override
protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l,v,position, id);
fc_option o = adapter.getItem(position);
if (o.getData().equalsIgnoreCase("folder") || o.getData().equalsIgnoreCase("parent directory")){
curDir = new File(o.getPath());
fill(curDir);
}else{
onFileClick(o);
}
}
private void onFileClick(fc_option o){
Toast.makeText(this,"File Click"+o.getName(), Toast.LENGTH_SHORT).show();
}
}
的fileArrayAdapter是完全一樣的鏈接。
謝謝您的幫助
不,它不是隻有項目的佈局文件。由於它由setContentView設置,它定義了整個佈局。 – Mudassir 2010-11-15 11:15:07
在您鏈接的文章中,ListActivity的OnCreate中沒有setContentView。作者使用file_view.xml作爲每個單獨項目的佈局,而不是作爲列表的佈局。 – kgiannakakis 2010-11-15 11:31:02