Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android文件选择器不工作_Java_Android - Fatal编程技术网

Java android文件选择器不工作

Java android文件选择器不工作,java,android,Java,Android,我正在编写一个Android文件选择器程序,在ListView中添加详细信息时,该流程并不完美。在文件Uploadlist.java中,我将目录路径发送到另一个扩展ArrayAdapter的类filedetails。但是代码流没有进入方法getView()。一些人能说出原因并说明代码没有进入getView()的原因吗。我使用了下面的代码 UploadList.Java public class UploadList extends ListActivity { private List<S

我正在编写一个
Android
文件选择器程序,在
ListView
中添加详细信息时,该流程并不完美。在文件
Uploadlist.java
中,我将目录路径发送到另一个扩展
ArrayAdapter
的类
filedetails
。但是代码流没有进入方法
getView()
。一些人能说出原因并说明代码没有进入
getView()
的原因吗。我使用了下面的代码

UploadList.Java

public class UploadList extends ListActivity {
private List<String> item=null;
private List<String> path=null;
private String root;
private TextView mypath;
String pathname,filename;
ImageView image;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mypath=(TextView)findViewById(R.id.path);
        image=(ImageView)findViewById(R.id.imageView1);
        root=Environment.getExternalStorageDirectory().getPath();
        filedetails details=new filedetails(this, root);
        setListAdapter(details);
    }
    /**
     * @param dirPath
     */
    public void getDir(String dirPath){
        mypath.setText("Location is:"+dirPath);
         pathname=dirPath;
         filedetails details=new filedetails(this, dirPath);
         setListAdapter(details);
    }
    protected void onListItemClick(ListView l,View v,int position,long id){
        File file=new File(path.get(position));
        if(file.isDirectory()){
            if(file.canRead())
                getDir(path.get(position));
        }

        else
        {
            filename=file.getName();
            pathname=pathname+"/"+filename;
            Intent back=new Intent(this,Upload.class);
            Bundle filen=new Bundle();
            filen.putString("filepath",pathname);
              back.putExtras(filen);
            startActivity(back);
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_upload_list, menu);
        return true;
    }

}
public class filedetails extends ArrayAdapter<String> {
Context context;
File[]values;
String dirPath;
String root=Environment.getExternalStorageDirectory().getPath();
String filename;
private List<String> item;
private List<String> path;
    public filedetails(Context context,String dirPath)
    {
        super(context,R.layout.row1);
        this.context=context;
        this.dirPath=dirPath;
    }

    static class ViewHolder {
        public TextView text;
        public ImageView image;
      }

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.row1, parent, false);
        ViewHolder viewholder=new ViewHolder();
        viewholder.text=(TextView)rowView.findViewById(R.id.textView1);
        viewholder.image=(ImageView)rowView.findViewById(R.id.imageView1);
        rowView.setTag(viewholder);
        item=new ArrayList<String>();
        path=new ArrayList<String>();
        File file=new File(dirPath);
        File[]filelist=file.listFiles();
        ViewHolder holder=(ViewHolder)rowView.getTag();
        if(!dirPath.equals(root)){
            item.add(root);
            path.add(root);
            item.add("../");
            path.add(file.getParent());
        }
            for(int i=0;i<filelist.length;i++){
                File file1=values[i];
                if(file1.canRead())
                {
                        if(file1.isDirectory()){
                        holder.image.setImageResource(R.drawable.folder);
                        holder.text.setText(file1.getName());

                    }
                }
                    else{
                        holder.image.setImageResource(R.drawable.file);
                        holder.text.setText(file1.getName());

                    }
                }

            return rowView;

}
}
public类UploadList扩展了ListActivity{
私有列表项=null;
私有列表路径=null;
私有字符串根;
私有文本视图mypath;
字符串路径名、文件名;
图像视图图像;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mypath=(TextView)findViewById(R.id.path);
image=(ImageView)findViewById(R.id.imageView1);
root=Environment.getExternalStorageDirectory().getPath();
filedetails details=新的filedetails(这个,根);
setListAdapter(详细信息);
}
/**
*@param dirPath
*/
公共void getDir(字符串dirPath){
setText(“位置为:“+dirPath”);
路径名=dirPath;
filedetails details=新的filedetails(这是dirPath);
setListAdapter(详细信息);
}
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
File File=新文件(path.get(position));
if(file.isDirectory()){
if(file.canRead())
getDir(path.get(position));
}
其他的
{
filename=file.getName();
路径名=路径名+“/”+文件名;
返回意图=新意图(这是Upload.class);
Bundle filen=新Bundle();
putString(“文件路径”,路径名);
返回。putExtras(文件名);
星触觉(背);
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.activity\u upload\u list,menu);
返回true;
}
}
filedetails.java

public class UploadList extends ListActivity {
private List<String> item=null;
private List<String> path=null;
private String root;
private TextView mypath;
String pathname,filename;
ImageView image;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mypath=(TextView)findViewById(R.id.path);
        image=(ImageView)findViewById(R.id.imageView1);
        root=Environment.getExternalStorageDirectory().getPath();
        filedetails details=new filedetails(this, root);
        setListAdapter(details);
    }
    /**
     * @param dirPath
     */
    public void getDir(String dirPath){
        mypath.setText("Location is:"+dirPath);
         pathname=dirPath;
         filedetails details=new filedetails(this, dirPath);
         setListAdapter(details);
    }
    protected void onListItemClick(ListView l,View v,int position,long id){
        File file=new File(path.get(position));
        if(file.isDirectory()){
            if(file.canRead())
                getDir(path.get(position));
        }

        else
        {
            filename=file.getName();
            pathname=pathname+"/"+filename;
            Intent back=new Intent(this,Upload.class);
            Bundle filen=new Bundle();
            filen.putString("filepath",pathname);
              back.putExtras(filen);
            startActivity(back);
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_upload_list, menu);
        return true;
    }

}
public class filedetails extends ArrayAdapter<String> {
Context context;
File[]values;
String dirPath;
String root=Environment.getExternalStorageDirectory().getPath();
String filename;
private List<String> item;
private List<String> path;
    public filedetails(Context context,String dirPath)
    {
        super(context,R.layout.row1);
        this.context=context;
        this.dirPath=dirPath;
    }

    static class ViewHolder {
        public TextView text;
        public ImageView image;
      }

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.row1, parent, false);
        ViewHolder viewholder=new ViewHolder();
        viewholder.text=(TextView)rowView.findViewById(R.id.textView1);
        viewholder.image=(ImageView)rowView.findViewById(R.id.imageView1);
        rowView.setTag(viewholder);
        item=new ArrayList<String>();
        path=new ArrayList<String>();
        File file=new File(dirPath);
        File[]filelist=file.listFiles();
        ViewHolder holder=(ViewHolder)rowView.getTag();
        if(!dirPath.equals(root)){
            item.add(root);
            path.add(root);
            item.add("../");
            path.add(file.getParent());
        }
            for(int i=0;i<filelist.length;i++){
                File file1=values[i];
                if(file1.canRead())
                {
                        if(file1.isDirectory()){
                        holder.image.setImageResource(R.drawable.folder);
                        holder.text.setText(file1.getName());

                    }
                }
                    else{
                        holder.image.setImageResource(R.drawable.file);
                        holder.text.setText(file1.getName());

                    }
                }

            return rowView;

}
}
公共类文件详细信息扩展ArrayAdapter{
语境;
文件[]值;
字符串路径;
String root=Environment.getExternalStorageDirectory().getPath();
字符串文件名;
私人清单项目;
私有列表路径;
公共文件详细信息(上下文、字符串路径)
{
超级(上下文,右布局,第1行);
this.context=context;
this.dirPath=dirPath;
}
静态类视窗夹{
公共文本查看文本;
公众形象;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
视图行视图=充气机。充气(R.layout.row1,父级,false);
ViewHolder ViewHolder=新ViewHolder();
viewholder.text=(TextView)rowView.findViewById(R.id.textView1);
viewholder.image=(ImageView)rowView.findViewById(R.id.imageView1);
rowView.setTag(viewholder);
item=newarraylist();
路径=新的ArrayList();
文件文件=新文件(dirPath);
File[]filelist=File.listFiles();
ViewHolder=(ViewHolder)rowView.getTag();
如果(!dirPath.equals(root)){
项。添加(根);
添加(根目录);
项目.添加(“/”);
add(file.getParent());
}
对于(inti=0;i变化

File[]values;  

然后改变

File file1=values[i];

改变

File[]values;  

然后改变

File file1=values[i];


尝试添加
@覆盖
?尝试在getView中覆盖,尝试不工作尝试添加
@覆盖
?尝试在getView中覆盖,尝试不工作