请帮我如何自定义gridview

时间:2013-04-30 08:26:37

标签: android

我在代码中使用了一个简单的适配器。我正在从文件路径填充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>

1 个答案:

答案 0 :(得分:1)

请参阅链接here。自定义gridview与您的应用程序中预期的复选框。

相关问题