2016-05-16 2 views
-1

Я действительно не знаю, как это сделать ....... Я пробовал какой-то учебник, но не работал для меня ... я уже сделал это с TextView, но не в состоянии сделать это с ImageView ...Как передать изображение из Recyclerview в следующую активность

вот мой recyclerview адаптер

public class RecyclerViewDataAdapter extends RecyclerView.Adapter<RecyclerViewDataAdapter.ViewHolder> { 
private static String Title = "title"; 
public ImageLoader mImageLoader; 
//List of superHeroes 
List<ListOfData> superHeroes; 
private Activity context; 

public RecyclerViewDataAdapter(List<ListOfData> superHeroes, Activity context) { 
    super(); 
    //Getting all the superheroes 
    this.superHeroes = superHeroes; 
    this.context = context; 

} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.recyclerview_row, parent, false); 
    ViewHolder viewHolder = new ViewHolder(v); 
    return viewHolder; 
} 


@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    ListOfData superHero = superHeroes.get(position); 


    mImageLoader = MyApplication.getInstance().getImageLoader(); 
    mImageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView1, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert)); 
    holder.imageView1.setImageUrl(superHero.getImageUrl(), mImageLoader); 
    holder.textViewName1.setText(superHero.getName()); 
    //holder.textViewName2.setText(superHero.getName()); 
    //holder.textViewRank.setText(String.valueOf(superHero.getRank())); 
    //holder.textViewRealName.setText(superHero.getRealName()); 
    //holder.textViewCreatedBy.setText(superHero.getCreatedBy()); 
    //holder.textViewFirstAppearance.setText(superHero.getFirstAppearance()); 

    //String powers = ""; 

    /* for(int i = 0; i<superHero.getPowers().size(); i++){ 
    powers+= superHero.getPowers().get(i); 
}*/ 

    //holder.textViewPowers.setText(powers); 


} 

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

class ViewHolder extends RecyclerView.ViewHolder { 
    public NetworkImageView imageView1; 
    public TextView textViewName1; 
    public TextView textViewName2; 
    public TextView textViewRank; 
    public TextView textViewRealName; 
    public TextView textViewCreatedBy; 
    public TextView textViewFirstAppearance; 
    public TextView textViewPowers; 

    public ViewHolder(View itemView) { 
     super(itemView); 
     imageView1 = (NetworkImageView) itemView.findViewById(R.id.thumbnail); 
     textViewName1 = (TextView) itemView.findViewById(R.id.category_title_one); 
    /* textViewRank= (TextView) itemView.findViewById(R.id.textViewRank); 
    textViewRealName= (TextView) itemView.findViewById(R.id.textViewRealName); 
    textViewCreatedBy= (TextView) itemView.findViewById(R.id.textViewCreatedBy); 
    textViewFirstAppearance= (TextView) itemView.findViewById(R.id.textViewFirstAppearance); 
    textViewPowers= (TextView) itemView.findViewById(R.id.textViewPowers); 
    */ 

     imageView1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       ListOfData nextActivitySuperHeroes = (ListOfData) v.getTag(); 

       Intent intent = new Intent(context, MasterDetail.class); 
       intent.putExtra(Title, textViewName1.getText().toString()); 
       context.startActivity(intent); 
      /*BehindTheLayoutFragment fragment = new BehindTheLayoutFragment(); 
      FragmentTransaction ft = ((AppCompatActivity)context).getFragmentManager().beginTransaction(); 
      ft.replace(R.id.behind_the_layout_fragment, fragment); 
      ft.addToBackStack(null); 
      ft.commit(); */ 
       //((AppCompatActivity)context).getFragmentManager().beginTransaction().replace(R.id.behind_the_layout_fragment, fragment).commit(); 

      } 
     }); 
    } 

}} 

И следующий код

public class MasterDetail extends AppCompatActivity { 
private ImageLoader mImageLoader ; 
private String imgUrl = "http://api.androidhive.info/json/movies/2.jpg"; 
private static String Title = "title"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.behind_the_layout_fragment); 

    Intent i=getIntent(); 
    String name = i.getStringExtra(Title); 


    TextView textView2 = (TextView) findViewById(R.id.category_title_one); 

    textView2.setText(name); 

    mImageLoader = MyApplication.getInstance().getImageLoader(); 

    NetworkImageView imageView = (NetworkImageView)findViewById(R.id.thumbnail); 
    imageView.setImageUrl(imgUrl, mImageLoader); 
}} 

ответ

2

активность в вашем getBindViewHolder в адаптере, Редактировать код, как ниже.

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    final ListOfData superHero = superHeroes.get(position); 

    mImageLoader = MyApplication.getInstance().getImageLoader(); 
    mImageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView1, R.mipmap.ic_launcher, android.R.drawable.ic_dialog_alert)); 
    holder.imageView1.setImageUrl(superHero.getImageUrl(), mImageLoader); 
    holder.textViewName1.setText(superHero.getName()); 

    holder.imageView1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(context, MasterDetail.class); 
      intent.putExtra(Title, superHero.getName()); 
      intent.putExtra("URL", superHero.getImageUrl()); 
      context.startActivity(intent); 
     } 
    }); 
}  

Это поможет.

p. s. В MasterDetail уже указан imgUrl. если вы добавите

imgUrl = i.getStringExtra("URL"); 

будет работать.

+0

Спасибо ........ это сработало :) но вы будете PLZ объяснить, что вы сделали ??? –

+0

Простая попытка переместить ваш OnClickListener в ViewHolder на onBindViewHolder. другой часть - такой же. потому что в классе ViewHolder вы включаете только методы variable и findViewById, а не другой код. другой код должен перейти к onBindViewHolder. – WindSekirun

+0

oh ho ...........;) –

Смежные вопросы