0

コードで単純なアダプターを使用しています。GridViewファイルパスからのデータを入力しています。以下は私のコードです。今、グリッドビューにチェックボックスを追加したいと思います。どうやってやるの?コードをどのように変更すればよいですか? 私が見つけたすべての例は、ギャラリーから画像をインポートしますが、ファイルパスからインポートする必要があります。ファイルがディレクトリの場合は、さらにディレクトリ アイコンを表示する必要があります。それ以外の場合は画像を表示します。

GridView gridView;
TextView textView;
File currentParent;
File[] currentFiles;
SimpleAdapter simpleAdapter;
File root1;
File root;

root1 = new File("/data/data/com.myexample.lock/files/");

currentParent = root1;
currentFiles = root1.listFiles();

currentFilePath = new String[currentFiles.length];
int count = 0;

for (File f : currentFiles) {
    currentFilePath[count] = f.getAbsolutePath();
    count++;
}

gridView = (GridView) findViewById(R.id.grid);
gridView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        if (currentFiles[position].isDirectory()) {
            root = new File("/data/data/com.myexample.lock/files/" + FileName(currentFilePath[position]) + "/");
            currentFiles = root.listFiles();
            inflateListView(currentFiles);
        } else if (currentFiles[position].isFile()) {
            openFile(currentFiles[position]);
        }
    }
});


private void inflateListView(File[] files) {
    List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();

    for (int i = 0; i < files.length; i++) {
        Map<String, Object> listItem = new HashMap<String, Object>();
        if (files[i].isDirectory()) {
            listItem.put("icon", R.drawable.folder);
            listItem.put("fileName", files[i].getName()+"("+files[i].list().length+")");
        } else {
            listItem.put("icon", files[i]);
        }

        listItems.add(listItem);
    }

    simpleAdapter = new SimpleAdapter(this, listItems, R.layout.line,new String[] { "icon", "fileName" }, new int[] { R.id.icon, R.id.file_name });
}

R.layout.line.xml

<?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="fill_parent"
    android:background="#ffffff"
    android:orientation="horizontal"
    android:padding="5dip" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

       <TextView
        android:id="@+id/file_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/icon"
        android:paddingLeft="5dp"
        android:textColor="#000000"
        android:textSize="12dp" />

 </RelativeLayout>
4

1 に答える 1

1

こちらのリンクを参照してください。アプリケーションで期待どおりに、チェック ボックスを使用して gridview をカスタマイズします。

于 2013-04-30T10:07:21.077 に答える