单击项目时从listView打开图像

时间:2014-07-07 17:53:24

标签: android sqlite listview android-intent onclick

我正在做一个应用程序,它包含一个存储gps数据的数据库,拍照并将其存储在ListView中显示的SQLite数据库中,如下所示:


  • 时间:HH:MM:SS
  • LATITUDE:0.00
  • LONGITUDE:0.00
  • 海拔高度:0
  • IMAGE:/存储/ sdcard0 /..../ image.jpg的

我想做什么

我希望在单击列表项时,在新活动中打开与该图像路径相关的图像。


我有什么

我得到的是,当点击一个项目时,我可以进入吐司的图像路径。但我仍然坚持如何将此字符串值传递给新活动并使用它在imageview中显示它。

这是我获取项目数据的代码的一部分:

        Contact_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        Toast.makeText(MainActivity.this, "Has seleccionado " + contact_data.get( + i).getUrl(), Toast.LENGTH_SHORT).show();
        }
    });
}

2 个答案:

答案 0 :(得分:0)

尝试以下

关于你的方法:

在祝酒词显示后添加:

//Locate and create the image
File imgFile = new  File(“contact_data.get( + i).getUrl()”);

if(imgFile.exists()){
//Create a bitmap so the ImageView can load it
String myBitmap = imgFile.getAbsolutePath();

Intent myIntent = new Intent (CurrentClass.this, NewActivity.Class);
myIntent.putExtra("imagePath", myBitmap);
startActivity(myIntent)

在新活动中声明一个图像视图,只需添加以下内容:

Bitmap myBitmap = BitmapFactory.decodeFile(getIntent().getStringExtras("imagePath"));

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

答案 1 :(得分:0)

 Contact_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
           String imgUrl = contact_data.get( + i).getUrl();
           launchImageViewer(imgUrl);

        }
});


public void launchImageViewer(String url){
   Intent i = new Intent(this, YourImageViewActivity.class);
   i.putExtra("imageUrl", url);
   startActivity(i);
}

然后在你的第二个活动的onCreate()寻找额外的并使用它:

String imgUrl = getIntent().getExtra("imageUrl");