2016-11-27 49 views
0

這是我MainActivity類我的份額的意圖。我在Uri.parse行發生錯誤。如何在RecyclerView中共享Firebase中的圖片?

 viewHolder.mShareButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent shareIntent = new Intent(); 
       shareIntent.setAction(Intent.ACTION_SEND); 
       shareIntent.putExtra(Intent.EXTRA_TEXT, "Shared via Entrepreneur Quotebook"); 
       shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(getImageUri(Context ctx,))); 

       shareIntent.setType("image/*"); 
       startActivity(Intent.createChooser(shareIntent, "Share image via:")); 

此方法用於解析Uri。我不確定這個方法是否正確,因爲我從某處複製了這個方法。

public Uri getImageUri(Context ctx, Bitmap post_image) { 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    post_image.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    String path = MediaStore.Images.Media.insertImage(ctx.getContentResolver(), post_image, "Title", null); 
    return Uri.parse(path); 
+0

有什麼錯誤的語句? – Wilik

+0

無法解析符號'ctx'。 –

+1

代替'和'view.getContext()' – Wilik

回答

1

好了,試試這個: -

public class RecycleClass extends RecyclerView.Adapter<RecycleClass.ViewHolder> { 
    Context c; 
    ArrayList<String> yourData = new ArrayList<>();//additional parameters 



    RecycleClass(Context c,ArrayList<String> yourData){ 
     this.c = c; //this is important 
     this.yourData = yourData; 
    } 

    /* 
     Rest of your code... 
    */ 
    } 

從你的主要活動(或活動,你要設置這個rec​​yclerview)

//this will setup your context 
adapter = new RecycleClass(MainActivity.this,yourData); 

而且也更換此

startActivity(Intent.createChooser(shareIntent, "Share image via:")); 

c.startActivity(Intent.createChooser(shareIntent, "Share image via:")); 

最後

public Uri getImageUri(Bitmap post_image) { 
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
post_image.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
String path = MediaStore.Images.Media.insertImage(c.getContentResolver(), post_image, "Title", null); 
return Uri.parse(path); 
} 

現在,你在哪裏都在呼喚你的getImageUri()方法只是通過位圖,而不是背景。

試試這個,讓我知道它的工作與否。

相關問題