1

Androidファイルチューザープログラムを作成していますが、に詳細を追加するListViewと、フローが完全に機能しません。このファイルでは、ディレクトリパスを。を拡張Uploadlist.javaする別のクラスに送信しています。しかし、コードフローはメソッドに入りません。理由を教えて、コードが入らない理由を教えてもらえますか。以下のコードを使用しました。filedetailsArrayAdaptergetView()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;
    }

}

filedetails.java

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;

}
}
4

1 に答える 1

1

変化する

File[]values;  

//File[]values;

そして、変更

File file1=values[i];

File file1=filelist[i];
于 2012-12-03T10:08:46.573 に答える