2016-01-25 2 views
0

я хочу, чтобы отправить свое имя и изображение в виде утилизатора OЩелкните на но им немного запутался я должен использовать paraceble или простой пучок механизм, как я отправить RECIVED егокак отправить данные с помощью сверток внутри метода OnClick RecyclerView

public class FamousPeople 

{ 
private static final String FAMOUS_NAME = "famous name"; 
private static final String FAMOUS_PHOTO="photo"; 
private String name; 
private int photo; 
private String details; 

FamousPeople(String name, int photo) { 

    this.name = name; 
    this.photo = photo; 
} 
public FamousPeople(){ 


} 


public String getDetails() { 
    return details; 
} 

public void setDetails(String details) { 
    this.details = details; 
} 

public int getPhoto() { 
    return photo; 
} 

public void setPhoto(int photo) { 
    this.photo = photo; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 


    } 
класс

BiographyViewHolder, в котором я должен передать мои изображения и текстовые данные

class BiographyViewHolder extends RecyclerView.ViewHolder 
     implements View.OnClickListener { 

    public TextView textView; 
    public ImageView imageView; 
List<FamousPeople> famousPeoples=GetData.getListdata(); 


public BiographyViewHolder(View itemView) 
{ 
    super(itemView); 
    itemView.setOnClickListener(this); 
    textView= (TextView) itemView.findViewById(R.id.country_name); 
    imageView= (ImageView) itemView.findViewById(R.id.country_photo); 


} 

@Override 
public void onClick(View view) { 
    Intent intent=new Intent(); 
    Bundle bundle=new Bundle(); 

    intent.putExtras(bundle); 
    view.getContext().startActivity(intent); 

} 

} 

GetData класс получение данных из этого класса

 public class GetData { 
    public static List<FamousPeople> getListdata() { 
    List<FamousPeople> famousPeoples = new ArrayList<>(); 
    famousPeoples.add(new FamousPeople("rahul", R.drawable.amitabh)); 
    famousPeoples.add(new FamousPeople("sumit", R.drawable.cvraman)); 
    famousPeoples.add(new FamousPeople("neha", R.drawable.indira)); 
    famousPeoples.add(new FamousPeople("surbhi", R.drawable.kishorkumar)); 
    famousPeoples.add(new FamousPeople("rahul", R.drawable.modi)); 
    famousPeoples.add(new FamousPeople("sumit", R.drawable.mother)); 
    famousPeoples.add(new FamousPeople("neha", R.drawable.nehru)) 

    return famousPeoples; 
} 
+0

Взаимодействие с параллельным/сериализуемым или простым пучком в вашем случае –

+0

, но сериализация медленнее по сравнению с paraceble, и im собирается использовать xml pull parser для получения данных, поэтому m бит запутан, когда использовать paraceble и когда использовать простой пакет – rahul

ответ

2

попробуйте отредактировать функцию onClick(), как показано ниже. Все, что вам нужно получить данные из списка, указываемые getAdapterPosition, а затем передать их в bundle

@Override 
     public void onClick(View v) { 
      Intent intent=new Intent(); 
      Bundle bundle=new Bundle(); 
      bundle.putInt("IMAGE", famousPeoples.get(getAdapterPosition()).getPhoto()); 
      bundle.putString("NAME", famousPeoples.get(getAdapterPosition()).getName()); 
intent.putExtras(bundle); 
    view.getContext().startActivity(intent); 

} 
+0

im получая имя, но не получая изображения, – rahul

+0

, пожалуйста, покажите мне вашу реализацию –

+0

см. Я добавил в столбце ответа – rahul

0
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view=inflater.inflate(R.layout.fragment_detail, container, false); 
    textView= (TextView) view.findViewById(R.id.bioname); 
    imageView= (ImageView) view.findViewById(R.id.imageView); 
    Bundle getBundle = null; 
    getBundle = getActivity().getIntent().getExtras(); 

    String name = getBundle.getString("NAME"); 
    int id = getBundle.getInt("IMAGE"); 
    textView.setText(name); 
    imageView.setImageResource(id); 
    return view; 
} 
0

Чтобы получить изображение и имя, вы должны сделать что-то вроде этого,

Для экс : YOUR CLICK EVENT отправить данные onClick();

ViewHolder VHheaderItem = (ViewHolder) view; 

    VHheaderItem.image_detail.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          Intent i = new Intent(CurrentClass.this, AnotherClass.class); 
          i.putExtra("Name", listItems1.get(position).getVarName();); 
          startActivity(i); 
         } 
        }); 

Чтобы получить его,

String drName = getIntent().getStringExtra("Name"); 

Теперь, если вы хотите передать изображение через намерение затем

imageView.buildDrawingCache(); 
Bitmap image= imageView.getDrawingCache(); 

Bundle extras = new Bundle(); 
extras.putParcelable("imagebitmap", image); 
intent.putExtras(extras); 
startActivity(intent); 

Чтобы получить его,

Bundle extras = getIntent().getExtras(); 
Bitmap bmp = (Bitmap) extras.getParcelable("imagebitmap"); 

image.setImageBitmap(bmp); 

Пройтись get ImageView's image and send it to an activity with Intent для более детально и how to pass images through intent

+0

ваша проблема решена? @rahul vyas –

+0

no его не работает i отлаживает область, в которой активность, получающая изображения, изображения поступают в переменную, но не отображают ее, которая является проблемой – rahul

+0

, если вы используете закрытую фотографию; для фото, чем передать int в намерении. если вы получаете это значение @rahulvyas, тогда установите это изображение. –

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