簡體   English   中英

通過意圖將畫廊圖像傳遞到另一個活動

[英]passing gallery image to another activity through intent

我需要通過使用該圖像的路徑將圖像從畫廊發送到另一個活動,但是什么也沒有發生……幫幫我……這是代碼。

        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
             super.onActivityResult(requestCode, resultCode, data);
           if(requestCode==RESULT_LOADIMAGE&&resultCode==RESULT_OK&&null!=data)
       {
        Uri selectedImages=data.getData();
        String[] filePathColon={MediaStore.Images.Media.DATA};
        Cursor cursr=getContentResolver().query(selectedImages, filePathColon, null, null, null);
        cursr.moveToFirst();
        int columnindex=cursr.getColumnIndex(filePathColon[0]);
        String picturepath=cursr.getString(columnindex);
        cursr.close();

    Intent  intent= new Intent(MainActivity.this,SecondActivity.class);
      intent.putExtra("imagePath",filePathColon );
        startActivity(intent);

       }
   }

第二個活動代碼是

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    img=(ImageView)findViewById(R.id.imageView1);


       getData();

       }

      private void getData(){
    String ps=getIntent().getStringExtra("imagepath");

    img.setImageBitmap(BitmapFactory.decodeFile(ps));

}   
intent.putExtra("imagePath",filePathColon );

應該

intent.putExtra("imagePath",picturepath);

因為filepathcolon指向列索引,而picturepath指向URI

並使用它

String ps=getIntent().getStringExtra("imagePath"); //it should be same as you send it

請這樣改變

      Intent  intent= new Intent(MainActivity.this,SecondActivity.class);
  intent.putExtra("imagePath",picturepath);
    startActivity(intent);

   }

Intent中的兩個字符串不匹配:您在第一個Activity中用大寫P編寫了imagePath,但在第二個Activity中卻寫不了。

String ps=getIntent().getStringExtra("imagePath");

修復它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM