Android的浏览文件code [英] android browse files code
问题描述
在以下codeI想实现的follwwing浏览器code的 http://www.remwebdevelopment.com/dev/a34/Directory-Browser-Application.html
我刚开空白文本视图在这里为ouptut,我没有看到browser.What我做错了这里。
公共类File_browse延伸活动{
私人列表<串GT;项=无效;@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_file_browse);
的GetFiles(新文件(/)listFiles());
}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
。getMenuInflater()膨胀(R.menu.activity_file_browse,菜单);
返回true;
}保护无效onListItemClick(ListView中升,视图V,INT位置,长的id){
INT selectedRow =(int)的ID;
如果(selectedRow == 0){
的GetFiles(新文件(/)listFiles());
}其他{
档案文件=新的文件(items.get(selectedRow));
如果(file.isDirectory()){
的GetFiles(file.listFiles());
}其他{
新AlertDialog.Builder(本)
.setTitle(此文件不是目录)
.setNeutralButton(OK,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释按钮){
//没做什么
}
})。显示();
//Toast.makeText(this,此文件不是目录+位置,Toast.LENGTH_SHORT).show();
}
}
}
私人无效的GetFiles(文件[]文件){
Toast.makeText(这一点,在获取文件,Toast.LENGTH_SHORT).show();
项目=新的ArrayList<串GT;();
items.add(的getString(R.string.app_name));
对于(文件文件:文件){
items.add(file.getPath());
}
ArrayAdapter<串GT;的fileList =新ArrayAdapter<串GT;(这一点,R.layout.file_list_row,项目);
ArrayAdapter ADP =新ArrayAdapter(File_browse.this,android.R.layout.simple_list_item_1);
ListView控件mainlist = NULL;
mainlist.setAdapter(ADP);
mainlist.setTextFilterEnabled(真);}
}
main.xml中
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent> < ListView的机器人:ID =@机器人:ID /列表
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/><! - <的TextView
机器人:ID =@机器人:ID /空
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_centerHorizontal =真
机器人:layout_centerVertical =真
机器人:填充=@扪/ padding_medium
机器人:文字=@字符串/参考hello world
工具:上下文=。File_browse/> - >
< / RelativeLayout的>
file_list_row.xml毗邻activity_file_browse.xml
<?XML版本=1.0编码=UTF-8&GT?;
< TextView的机器人:ID =@ + ID / text1中
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/>
1 / mainList为空,所以它最有可能崩溃
2 /适配器的fileList从未使用过,所以无处你实际使用的适配器文件名列表
3 / ADP不包含任何你不给它任何内容
4 /因为你的清单名为@android:ID /列表,你可能想扩展ListActivity
5 / onListItemClick不会被调用,也没有覆盖任何(只要你不扩展ListActivity),所以它基本上是死的code
6 / File_browse应该被命名为FileBrowse尊重Java命名格式约定。
In the following code i am trying to implement the follwwing browser code http://www.remwebdevelopment.com/dev/a34/Directory-Browser-Application.html
I am just getting a blank text view here as the ouptut and i do not see the browser.What am i doing wrong here
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 is next to 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"/>
1/ mainList is null, so it most likely crashes
2/ The adapter fileList is never used, so nowhere you actually use the list of file names in an adapter
3/ adp doesn't contain anything as you don't give it any content
4/ given that your list is named @android:id/list, you probably wanted to extend ListActivity?
5/ onListItemClick is never called, nor does it overrides anything (as you don't extend ListActivity), so it is basically dead code
6/ File_browse should be named FileBrowse to respect naming format convention in java.
这篇关于Android的浏览文件code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!