2012-10-01 35 views
0

在下面的代碼我想實現的follwwing瀏覽器代碼http://www.remwebdevelopment.com/dev/a34/Directory-Browser-Application.html的Android瀏覽文件中的代碼

我剛開空白文本視圖在這裏爲ouptut和我沒有看到browser.What我做錯了什麼這裏

public class File_browse extends Activity { 
private List<String> items = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_file_browse); 
    getFiles(new File("/").listFiles()); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_file_browse, menu); 
    return true; 
} 

protected void onListItemClick(ListView l, View v, int position, long id){ 
    int selectedRow = (int)id; 
    if(selectedRow == 0){ 
     getFiles(new File("/").listFiles()); 
    }else{ 
     File file = new File(items.get(selectedRow)); 
     if(file.isDirectory()){ 
      getFiles(file.listFiles()); 
     }else{ 
      new AlertDialog.Builder(this) 
      .setTitle("This file is not a directory") 
      .setNeutralButton("OK", new DialogInterface.OnClickListener(){ 
       public void onClick(DialogInterface dialog, int button){ 
        //do nothing 
       } 
      }).show(); 
      //Toast.makeText(this, "This file is not a directory" + position, Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
private void getFiles(File[] files){ 
    Toast.makeText(this, "In get files" , Toast.LENGTH_SHORT).show(); 
    items = new ArrayList<String>(); 
    items.add(getString(R.string.app_name)); 
    for(File file : files){ 
     items.add(file.getPath()); 
    } 
    ArrayAdapter<String> fileList = new ArrayAdapter<String>(this,R.layout.file_list_row, items); 
    ArrayAdapter adp = new ArrayAdapter(File_browse.this, android.R.layout.simple_list_item_1); 
    ListView mainlist = null; 
    mainlist.setAdapter(adp); 
    mainlist.setTextFilterEnabled(true); 

} 




} 

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" > 

<ListView android:id="@android:id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

<!-- <TextView 
    android:id="@android:id/empty" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:padding="@dimen/padding_medium" 
    android:text="@string/hello_world" 
    tools:context=".File_browse" />--> 


</RelativeLayout> 

file_list_row.xml毗鄰activity_file_browse.xml

<?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="wrap_content"/> 
+0

你想瀏覽你的SD卡數據。 – Harish

+0

是電話和SD卡數據 – Rajeev

回答

2

1/mainList爲空,所以最有可能的崩潰

2 /適配器的fileList從未使用過,所以無處你實際上是在一個適配器使用的文件名列表

3/ADP沒有按不包含任何東西,因爲你不給它任何內容

4 /你的列表被命名爲@android:id/list,你可能想擴展ListActivity?

5/onListItemClick不會被調用,也沒有覆蓋任何(只要你不擴展ListActivity),所以它基本上是死代碼

6/File_browse應該被命名爲FileBrowse尊重Java命名格式約定。