2017-05-20 13 views
0

私はList Itemを持っていますが、クリックしたらImageを "putExtra"として渡し、 "getExtra"を使って別のアクティビティで取得します。 Stackoverflowにはいくつかの解決策が記載されていますが、私のために働いているものはありません。getExtraで画像URLを受け取って設定する方法

最初の活動:私は2番目の活動でそれを取得するとき

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { 
       intent.putExtra("imageurl", elementList.get(position).getImage()); 
       startActivity(intent); 
      } 
     }); 

、私は何も得ます。

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: https:/tctechcrunch2011.files.wordpress.com/2017/05/battlefield-africa-sponsored.png?w=764&h=400&crop=1 (No such file or directory) 

第二アクティビティー:私はそれは

+1

'elementList.get(position).getImage()'が返すものは? –

+0

文字列URLを返します。このように: "" https://tctechcrunch2011.files.wordpress.com/2017/05/battlefield-africa-sponsored.png?w=764&h=400&crop=1 " – user45678

答えて

1

注例外要因を克服するにはどうすればよい

image = (ImageView) findViewById(R.id.ivImage); 
myUri = Uri.parse(b.getString("imageurl")); 
image.setImageURI(myUri); 

java.io.FileNotFoundExceptionそれはエラーの格言を与えます。

あなたはImageView#setImageURIにブレークポイントを設定した場合、指定したUriBitmapFactory#decodeFileにあなたを導くでしょう。

public static Bitmap decodeFile(String pathName, Options opts) { 
    Bitmap bm = null; 
    InputStream stream = null; 
    try { 
    stream = new FileInputStream(pathName); 
    bm = decodeStream(stream, null, opts); 
    } catch (Exception e) { 
    /* do nothing. 
     If the exception happened on open, bm will be null. 
    */ 
    Log.e("BitmapFactory", "Unable to decode stream: " + e); 
    } finally { 
    if (stream != null) { 
     try { 
     stream.close(); 
     } catch (IOException e) { 
     // do nothing here 
     } 
    } 
    } 
    return bm; 
} 

以上のことから、問題は明白である - Uriは、ファイルパスであることが予想とあなたではないですしたがって、java.io.FileNotFoundException例外が発生します。ビットマップを別の方法でロードする必要があります。 PicassoまたはGlideをお勧めします。

関連する問題