2
두 개의 탭이 있습니다. 첫 번째는 RecyclerView이고 두 번째는 ViewPager입니다. RecyclerView의 첫 번째 항목에는 간단한 설명이 있으며 ViewPager의 첫 번째 페이지에는 설명이 짧지 만 자세하게 나와 있지 않은 동일한 내용 만 있습니다. 두 번째 항목과 세 번째 항목 등으로 동일합니다.RecyclerView와 SwipeView 사이의 연결?
제 질문은 RecyclerView의 항목을 클릭 할 수 있고 ViewPager의 동일한 항목으로 전환하는보기일까요?
ViewPager 어댑터
public class ViewPagerAdapter extends PagerAdapter {
// Declare Variables
Context context;
String[] rezeptTitel;
String[] kcal;
String[] zubereitung;
int[] rezeptImages;
LayoutInflater inflater;
public ViewPagerAdapter(Context context, String[] rezeptTitel, String[] kcal,zubereitung, int[] rezeptImages) {
this.context = context;
this.rezeptTitel = rezeptTitel;
this.kcal = kcal;
this.zubereitung = zubereitung;
this.rezeptImages = rezeptImages;
}
@Override
public int getCount() {
return rezeptTitel.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// Declare Variables
TextView txtrezeptTitel;
TextView txtkcal;
TextView txtzubereitung;
ImageView imagerezept;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.rezepte_fragment_swipeview, container,
false);
// Locate the TextViews in viewpager_item.xml
txtrezeptTitel = (TextView) itemView.findViewById(R.id.rezeptTitel);
txtkcal = (TextView) itemView.findViewById(R.id.kcal);
txtzubereitung = (TextView) itemView.findViewById(R.id.zubereitung);
// Capture position and set to the TextViews
txtrezeptTitel.setText(rezeptTitel[position]);
txtkcal.setText(kcal[position]);
txtzubereitung.setText(zubereitung[position]);
// Locate the ImageView in viewpager_item.xml
imagerezept = (ImageView) itemView.findViewById(R.id.image_rezepte_basic);
// Capture position and set to the ImageView
imagerezept.setImageResource(rezeptImages[position]);
// Add viewpager_item.xml to ViewPager
((ViewPager) container).addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// Remove viewpager_item.xml from ViewPager
((ViewPager) container).removeView((RelativeLayout) object);
}
내 RecyclerView 어댑터
public class RezepteAdapter extends RecyclerView.Adapter<RezepteAdapter.MyViewHolder> {
private LayoutInflater inflater;
List<Information> data = Collections.emptyList();
public RezepteAdapter(Context context, List<Information> data) {
inflater = LayoutInflater.from(context);
this.data = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.ernaehrungsplan_custom_row, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current = data.get(position);
holder.title.setText(current.title);
}
@Override
public int getItemCount() {
return data.size();
}
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView title;
ImageView icon;
public MyViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.listText3);
icon = (ImageView) itemView.findViewById(R.id.listIcon3);
icon.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Context context = itemView.getContext();
Intent intent = new Intent(context, Ernaehrung.class);
context.startActivity(intent);
}
}
예를 들어 주시겠습니까? 'addOnItemTouchListener'로 무엇을 해야할지를 찾을 수 없습니다. – sergejdeveloper
그러나 필자는 viewPager 어댑터가 recylerview 어댑터와 다른 조각에 있지만 비슷한 상황이 발생합니다. 어떻게하면 recyclerview 어댑터에서 viewPager 어댑터에 액세스 할 수 있습니까? http://stackoverflow.com/q/32751281/2990066 – ShahNewazKhan