2

私はListView(アイコン+テキスト)を使用するファイルマネージャーを持っています..そして写真(jpg)に対してのみデフォルトのアイコンの代わりにプレビューを表示したい..esファイルエクスプローラーなどのように...

そして、私は、listviewの行を長押しすることによってsingle_selection listview..からmultiple_selectionに切り替えたいと思います..Androidメッセージシステムアプリで起こるように...選択された行のハイライトによって...checboxはありません..

私の実際のシナリオ:

私の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