2

我有一个使用 ListView(图标 + 文本)的文件管理器 .. 并且仅用于照片(jpg)我想显示预览而不是默认图标 .. 像 es 文件资源管理器或类似...

我想通过长按列表视图上的一行将表单单选列表视图..切换到多选..就像在android消息系统应用程序上发生的那样...通过选定行上的突出显示...没有复选框..

我的实际情况:

我的 ListView 为每一行使用一个 RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="60dip"
        android:padding="5dip">
        <ImageView
                android:id="@+id/fd_Icon"
                android:layout_width="50dip"
                android:layout_height="50dip"
        >
        </ImageView>
        <TextView
                android:text="Nome"
                android:layout_marginLeft="5dip"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:id="@+id/fd_Text"
                android:layout_toRightOf="@+id/fd_Icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
</RelativeLayout>

我有类 FileDirRow

public class FileDirRow {
        private String file_dir_text;
        private int file_dir_icon;
        public FileDirRow( int file_dir_icon , String file_dir_text ) {
                super();
                this.file_dir_icon = file_dir_icon;
                this.file_dir_text = file_dir_text;
        }
        public String getFileDirText() {
                return file_dir_text;
        }
        public int getFileDirIcon() {
                return file_dir_icon;
        }
}

我像这样填写列表视图............

//arrayItemT contains all files and directories of the current path
    ArrayList<FileDirRow> lista_file_dir =new ArrayList<FileDirRow>();

    for(int i=0;i<arrayItemT.size();i++){
        if (arrayItemT.get(i).endsWith("/"))
            lista_file_dir.add(new FileDirRow(R.drawable.folder, arrayItemT.get(i)));
        else
-----------------------------------------------------------------------------
        //if it's a photo add thumbnails or if it's a generic file...
            lista_file_dir.add(new FileDirRow(R.drawable.file, arrayItemT.get(i)));
-----------------------------------------------------------------------------
    }

    //popolate list
    ArrayList<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();

    for(int i=0;i<arrayItemT.size();i++){
         FileDirRow p= lista_file_dir.get(i);

            HashMap<String,Object> rowMap=new HashMap<String, Object>();//create value map

            rowMap.put("image", p.getFileDirIcon()); //for image key,image res
            rowMap.put("name", p.getFileDirText()); //for name key,l'informazine sul nome
            data.add(rowMap);  //add value map to data source
            }
    String[] from={"image","name"}; //from value under this key
    int[] to={R.id.fd_Icon,R.id.fd_Text};//to views id

    //create adapter 
    SimpleAdapter adapter=new SimpleAdapter(
                    getApplicationContext(),
                    data,//sorgente dati
                    R.layout.icon_row, //layout
                    from,
                    to);

    //use adapter
    ((ListView)findViewById(R.id.FileDirList)).setAdapter
4

0 回答 0