0

我在我的代码中使用了一个简单的适配器。我正在填充一个GridView来自文件的路径。下面是我的代码,它有效。现在我想在我的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 回答