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中覆盖,尝试不工作