从listview onlistitemclick获取图像

时间:2015-04-24 13:33:47

标签: android android-listview

我可以通过此代码进入我的自定义目录,该代码现在显示我目录中的图像列表,我想要的是在单击图像列表时打开这些图像。

private void getDir(String dirPath) {
    myPath.setText("Location: " + dirPath);
    item = new ArrayList<String>();
    path = new ArrayList<String>();
    File f = new File(dirPath);
    File[] files = f.listFiles();
    if (!dirPath.equals(root)) {
        item.add(root);
        path.add(root);
        item.add("../");
        path.add(f.getParent());
    }

    for (int i = 0; i < files.length; i++) {
        File file = files[i];
        path.add(file.getPath());
        if (file.isDirectory())
            item.add(file.getName() + "/");
        else
            item.add(file.getName());
    }
    ArrayAdapter<String> fileList = new ArrayAdapter<String>(this, R.layout.explorernew, item);
    setListAdapter(fileList);
}

File file;

@Override
protected void onListItemClick( ListView l, View v, int position, long id) {
    File imgFile = new  File(root+"/20150424_173923.jpg");
    //  TextView stxt = (TextView) findViewById(R.id.textView2);
    // stxt.setText(List.get(position));

    if (imgFile.exists()) {
        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

        ImageView myImage = (ImageView) findViewById(R.id.imageView);
        myImage.setImageBitmap(myBitmap);
    }
}

我将我的imgfile硬编码为显示图像的图像名称。我想在我的选择中动态更改图像

1 个答案:

答案 0 :(得分:1)

position函数中的protected void onListItemClick( ListView l, View v, int position, long id) {...}参数显示了listView中所选元素的位置,因此您可以String name =(String) l.getItemAtPosition(position);获取所选图像的名称,或者您可以在不使用position参数的情况下做另一件事,并使用String name = ((TextView) view).getText(); 然后,您可以轻松使用行name

中的File imgFile = new File(root+name);变量