簡體   English   中英

如何在我的活動中獲取 viewpager 數據 android java

[英]How can I get viewpager data in my activity android java

如何在我的活動中獲取 viewpager 數據 android java

我想在我的活動中查看 viewpager 的當前頁面數據

我的活動

 ViewPager2 locationViewPager = findViewById(R.id.locationViewPager);
    ImageView next = findViewById(R.id.next);
    ImageView back = findViewById(R.id.back);
     genres = findViewById(R.id.textView1);
     source = findViewById(R.id.textView2);


    List<TravelLocation> travelLocations = new ArrayList<>();


    for (int i=0;i<=1000;i++){
        TravelLocation travelLocationMV = new TravelLocation();
        travelLocationMV.imageUrl = R.drawable.cardimage;
        travelLocationMV.genres = "Thriller";
        travelLocationMV.source = "Netflix";
        travelLocations.add(travelLocationMV);
    }

    TravelLocationAdapter travelLocationAdapter = new TravelLocationAdapter(travelLocations);


    locationViewPager.setAdapter(travelLocationAdapter);

    locationViewPager.setClipToPadding(false);
    locationViewPager.setClipChildren(false);
    locationViewPager.setOffscreenPageLimit(3);
    locationViewPager.getChildAt(0).setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);



    CompositePageTransformer compositePageTransformer = new CompositePageTransformer();
    compositePageTransformer.addTransformer(new MarginPageTransformer(40));
    compositePageTransformer.addTransformer((page, position) -> {
        float r = 1 - Math.abs(position);
        page.setScaleY(0.90f + r * 0.04f);
    });

    locationViewPager.setPageTransformer(compositePageTransformer);

我的適配器

class TravelLocationAdapter extends RecyclerView.Adapter<TravelLocationAdapter.TravelLocationViewHolder>{

private List<TravelLocation> travelLocations;

public TravelLocationAdapter(List<TravelLocation> travelLocations) {
    this.travelLocations = travelLocations;
}

@NonNull
@Override
public TravelLocationViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new TravelLocationViewHolder(
            LayoutInflater.from(parent.getContext()).inflate(
                    R.layout.cardlayout,
                    parent, false
            )
    );
}
@Override
public void onBindViewHolder(@NonNull TravelLocationViewHolder holder, int position) {
    holder.setLocationData(travelLocations.get(position));
    holder.kbvLocation.setOnClickListener(view -> {
    });
}
@Override
public int getItemCount() {
    return travelLocations.size();
}

static class TravelLocationViewHolder extends RecyclerView.ViewHolder {

    private ImageView kbvLocation;


    TravelLocationViewHolder(@NonNull View itemView) {
        super(itemView);
        kbvLocation = itemView.findViewById(R.id.kbvLocation);
    }
    void setLocationData(TravelLocation travelLocation){
        Picasso.get().load(travelLocation.imageUrl).into(kbvLocation);
    }
}

}

我的數據 class

class TravelLocation {
public int  imageUrl;
public String genres,source; }

我想訪問主要活動中的其他兩個文本視圖

如何在我的活動中設置TextView的文本

其他兩個領域如何參與活動

我想在活動中設置這個字段

您可以在 TravelLocationAdapter 內創建另一個 function ,它接受您希望 textview 具有的值。 這種方式代碼保留在適配器中,您可以調用它並將值從主要活動傳遞給它。 function 甚至可以返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM