2017-01-11 14 views
0

ちょっと、ユーザーが画像をタップしたときにお気に入りのアクティビティに画像を追加したいと思います。これまでのところ、私はデータを得ることができますが、それを私のお気に入りのアクティビティに渡す方法はわかりません。おそらくインテントとブロードキャストを使用して、この問題にどのようにアプローチすればよいでしょうか?どんな助けもありがとう。 albums.get(position).getImage()android:アダプタクラスからアクティビティにデータを送信する

:ありがとう

は、ここに私のMyRecyclerAdapterクラスは

public class MyRecyclerAdapter extends RecyclerView.Adapter<MyViewHolder>{ 

    Context c; 
    ArrayList<Album> albums; 

    public MyRecyclerAdapter(Context c, ArrayList<Album> albums){ 
     this.c=c; 
     this.albums=albums; 
    } 
    // Initialize holder 
    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.model,null); 
     MyViewHolder holder = new MyViewHolder(v); 
     return holder; 
    } 

    //Bind data to views 
    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 

     holder.nameTxt.setText(albums.get(position).getName()); 
     holder.img.setImageResource(albums.get(position).getImage()); 

    //listener 
     holder.setItemClickListener(new ItemClickListener() { 
      @Override 
      public void onItemClick(View v, int pos) { 
       Toast.makeText(c,albums.get(pos).getName() + " ,added to favorite ",Toast.LENGTH_SHORT).show(); 


      // albums.get(pos).getName(); 

      } 
     }); 
    } 
    @Override 
    public int getItemCount() { 
     return albums.size(); 
    } 
} 

だ。ここに私MyViewHolderクラスは、あなたのイメージがあなたの描画可能なフォルダに配置されており、このラインにより得ることができると仮定すると

public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 

    ImageView img; 
    TextView nameTxt; 
    ItemClickListener itemClickListener; 

    public MyViewHolder(View itemView) { 

     super(itemView); 

     nameTxt=(TextView) itemView.findViewById(R.id.nameTxt); 
     img = (ImageView) itemView.findViewById(R.id.movieImage); 

     itemView.setOnClickListener(this); 



    } 

    public void setItemClickListener(ItemClickListener ic) 
    { 
     this.itemClickListener=ic; 

    } 


    @Override 
    public void onClick(View v) { 

     this.itemClickListener.onItemClick(v,getLayoutPosition()); 


    } 
} 
+0

意味しますか? –

+0

あなたがあなたのアクティビティに転送したい正しいImageを見つけたら、それを試み、FavouriteActivityに切り替えるために新しいIntentを開始し、余分な画像を渡してください。 BitmapをByteArrayに変換する必要があります。 [こちらをチェック](http://stackoverflow.com/questions/11010386/send-bitmap-using-intent-android)が役立ちます。 –

+0

@AjayShrestha(ah testai vanam)私は文字列値を渡すことを考えていましたが、ビットマップイメージを渡す必要があります。 – user7062312

答えて

0

です次のようにint値をFavoritesActivityに渡します:

Intent intent = new Intent(c, FavoritesActivity.class); 
intent.putExtra(Intent.EXTRA_TEXT, albums.get(pos).getImage()); 
c.startActivity(intent); // put context infront 

albums.get(pos).getImage()はint値を返します。 は、その後、あなたのFavoritesActivityに次のように呼び出すことによって取得する:あなたは、このRecyclerViewAdapterが呼び出されるアクティビティで選択した画像を表示したい

myImageView = (ImageView) findViewById(R.id.my_image_view); 

Intent intent = getIntent(); 
if (intent.hasExtra(Intent.EXTRA_TEXT)){ 
    int image = intent.getIntExtra(Intent.EXTRA_TEXT); 
    myImageView.setImageResource(image); 
} 
+0

データを渡すことはできましたが、データを保存するにはどうすればよいですか?ありがとう – user7062312

+0

@ user7062312どこのデータを保存しますか? – MS2099

+0

お気に入りのアクティビティにデータを保存したい。私は意図を使って渡した画像を表示したい。今、データを渡すだけです。 – user7062312

関連する問題