0

RecyclerView 어댑터에서 다른 활동으로 이미지를 전달하고 싶습니다.recyclerview 어댑터에서 다른 활동으로 이미지를 전달하는 방법

public class Main2Activity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     Bundle b = getIntent().getExtras(); 
     String receivingdata = b.getString("Key"); 
     TextView textView=(TextView)findViewById(R.id.tv_title); 
     textView.setText(receivingdata); 

    } 
} 

그래서 내가 view.setOnClickListener(new View.OnClickListener() { 섹션

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

        Bundle b = new Bundle(); 
        Intent intent=new Intent(view.getContext(),Main2Activity.class); 
        String passingdata = tv_name.getText().toString(); 
        b.putString("Key", passingdata); 
        intent.putExtras(b); 
        view.getContext().startActivity(intent); 
       } 
      }); 

에 텍스트를 전달하고이 부분

과 다른 활동에 그것을 받아 봐 :이 내 다른 활동

public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { 
    private Context context; 
    private ArrayList<Deatails> android; 


    public DataAdapter(Context context,ArrayList<Deatails> android) { 
     this.context = context; 
     this.android = android; 
    } 

    @Override 
    public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.card_row, viewGroup, false); 
     return new ViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(DataAdapter.ViewHolder viewHolder, final int i) { 

     viewHolder.tv_name.setText(android.get(i).getName()); 
     viewHolder.tv_version.setText(android.get(i).getVer()); 
     viewHolder.tv_api_level.setText(android.get(i).getApi()); 

     Picasso.with(context).load("http://memaraneha.ir/Erfan/images/"+android.get(i).getPic()).resize(500,500) 
       .into(viewHolder.tv_image); 

    } 

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

    public class ViewHolder extends RecyclerView.ViewHolder{ 
     private TextView tv_name,tv_version,tv_api_level; 
     private ImageView tv_image; 


     public ViewHolder(final View view) { 
      super(view); 

      tv_name = (TextView)view.findViewById(R.id.tv_name); 
      tv_version = (TextView)view.findViewById(R.id.tv_version); 
      tv_api_level = (TextView)view.findViewById(R.id.tv_api_level); 
      tv_image= (ImageView) view.findViewById(R.id.img); 

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

        Bundle b = new Bundle(); 
        Intent intent=new Intent(view.getContext(),Main2Activity.class); 
        String passingdata = tv_name.getText().toString(); 
        b.putString("Key", passingdata); 
        intent.putExtras(b); 
        view.getContext().startActivity(intent); 



       } 
      }); 
     } 
    } 
} 

: 이 내 어댑터입니다

Bundle b = getIntent().getExtras(); 
     String receivingdata = b.getString("Key"); 
     TextView textView=(TextView)findViewById(R.id.tv_title); 
     textView.setText(receivingdata); 

나는 너무 많은 것을 시도하지만 이미지는 지나치지 만 작동하지는 않는다. this link 내 문제가 중복되지만 내 경우에는 약간 다른 것 같아 혼란스러워. 어느 누구라도 도움을 청할 수 있다면

+0

어떤 오류가 발생 했습니까? – Meenal

+0

@BIW 그것의 명확한! onBindViewHolder with picasso library look – erfan

답변

4

이미지를 의도적으로 전달하지 마십시오. 이미지를 로컬에 저장하려고 시도하거나 URL 이미지 인 경우 웹에서 이미지를로드하기위한 라이브러리를 사용하고 캐시를 구현하는 라이브러리를 사용하고이 이미지에 대한 URI 만 활동으로 전달합니다. 그런 다음 전달 된 URI에서 이미지를 읽습니다.

+0

코드가 없으면 제안에 대답 해주세요. – erfan

+0

@erfan 패스 이미지 란 무엇입니까? 많은 코드를 게시하지만 주요 아이디어를 표시하지 마십시오. 어쨌든 url (이미지가 서버에 저장된 경우) 또는 리소스 ID (드로어 블 리소스 인 경우)를 전달해야합니다. 그런 다음 정상적으로 데이터를 전달하십시오. 하지만 귀하의 코드로 왜 string passingdata = tv_name.getText(). toString() ;? tv_name은 (는) 이미지 URL입니다. –

+0

@ LạngHoàng 아니 내 텍스트와 나는 이것을 전달하고 어떻게 말했지. 이것은 내 이미지 URL입니다 : Picasso.with (context) .load ("http://memaraneha.ir/Erfan/images/"android.get (i) .getPic()) .resize (500,500) .into viewHolder.tv_image); – erfan

관련 문제