当前位置: 首页 > 知识库问答 >
问题:

如何在我的活动android java中获取viewpager数据

尉迟边浩
2023-03-14

如何在我的活动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 TravelLocation {
public int  imageUrl;
public String genres,source; }

我想访问主活动中的另外两个文本视图

如何在活动中设置TextView的文本

其他两个字段如何进入活动

我想在活动中设置此字段

共有1个答案

章学义
2023-03-14

您可以在TravelLocationAdapter中创建另一个函数,该函数接受您希望文本视图具有的值。通过这种方式,代码保留在适配器中,您可以调用它并从主活动向它传递值。该函数甚至可以返回值。

 类似资料:
  • 问题内容: 在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作以获取UserDetails实现: 它工作正常,但我认为Spring在这种情况下可以使生活更轻松。有没有办法将自动接线连接到控制器或方法中? 例如,类似: 但是我得到了,而不是得到了? 我正在寻找一种优雅的解决方案。有任何想法吗? 问题答案: 序言:从Spring-Security 3.2开始,此答案的末尾描述了一个不错的注

  • 问题内容: 我添加了AsyncTask来将网络操作卸载到后台线程。我需要确保UI操作位于UI线程上,因此我想在Activity中使用runOnUiThread()。 谢谢你的帮助 WifiApManager connect.java 编辑 我想在TextView中显示已处理的文本 问题答案: 我添加了AsyncTask来将网络操作卸载到后台线程。我需要确保UI操作位于UI线程上,因此我想在Acti

  • 问题内容: 我陷入了Eclipse 4 RCP应用程序的一个问题。我需要记录一些事件。我需要以某种方式获得对记录器的引用。我知道如何使用来做到这一点,但是我仍然找不到在没有依赖注入的情况下如何获得的方法,而依赖注入无法在激活器中使用。有人知道吗,请问如何解决这个问题? 非常感谢 问题答案: 令人遗憾的是,没有注射就无法获得。关于如何在未附加到应用程序模型的类中使用eclipse 4 DI的答案中写

  • 问题内容: 在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作以获取UserDetails实现: 它工作正常,但我认为Spring在这种情况下可以使生活更轻松。有没有办法将UserDetails自动接线连接到控制器或方法中? 例如,类似: 但是我得到了,而不是得到了? 我正在寻找一种优雅的解决方案。有任何想法吗? 问题答案: 序言:从Spring-Security 3.2开始@Auth

  • 问题内容: 代码如下所示: 有没有一种方法可以通过发起类来获取活动线程的数量? 问题答案: 这是对Doug Hellman的多处理ActivePool示例代码(使用线程)的较小修改。这个想法是让您的工作人员在一个池中注册自己,使用线程锁来协调他们对活动目录的修改: 产量

  • 我在li中有多个选项卡,每个li包含class和id,每个选项卡都有自己的div(包含某种形式)。 当我点击其他非活动li时,我想在javascript var中获取活动选项卡的值。问题是,当我试图显示时,[object NodeList]处于警报状态。我就这样存钱,然后提醒我: JavaScript: 其中form-horizonal是驱动程序详细信息li的div的类名。 如何获得可读值,因为我