//遍历文件夹
private void GetAllEng(){

File dir = new File("/sdcard/thisnote");
File file[] = dir.listFiles();
if(file.length < 1) return;
file_map.clear();
for(int i = 0; i < file.length; i++){
if(file[i].isDirectory()){
file_map.put("EngName", file[i].getName());
openeng_list.add(file_map);
} }

} //信息对话框
    protected void Messagedialog(String TempStr){ 
AlertDialog.Builder builder = new Builder(opendata.this); 
builder.setIcon(android.R.drawable.ic_menu_view);
builder.setMessage(TempStr); 
builder.setTitle("信息提示"); 
builder.setPositiveButton("确定", 
new android.content.DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int which) { 
dialog.cancel();
}
}); 
builder.create().show(); 
    }在 protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.opendata);
        
      
        GetAllEng();
        //在 ListView 中显示所有的工程信息
         Messagedialog(openeng_list.toString());
}
中 Show 出一个信息提示框,查看信息时,却发现条目数量正确,但内容却为一个条目的重复值,不知道什么地方出问题了,求大神指点,谢谢。附图如下:
AndroidHashMap遍历

解决方案 »

  1.   

    大概看了下
    hashmap的结构是key value
    你的key每次都一样,你怎么保证你的value不是一样的???
      

  2.   


    我是想把 /sdcard/thisnote 下的所有目录遍历出来,把目录名都放在了 file_map 中,键值为 EngName。如果照您所说,应该怎样处理,请大体讲一下路子,谢谢。
      

  3.   


    我是想把 /sdcard/thisnote 下的所有目录遍历出来,把目录名都放在了 file_map 中,键值为 EngName。如果照您所说,应该怎样处理,请大体讲一下路子,谢谢。最简单的就是直接把目录放到arraylist里面
    list.add(目录名)
      

  4.   

    解决了,改正的代码如下:
    if(f.isDirectory()){ 
             HashMap<String, String> this_map = new HashMap<String, String>();
             this_map.put("EngName", f.getName());
             openeng_list.add(this_map);
                }