【问题标题】:Starting Activity with some `put extra` onClick of a recyclerView Item使用 recyclerView 项目的一些 `put extra` onClick 启动 Activity
【发布时间】:2014-11-19 09:03:42
【问题描述】:

我想通过单击 Recycler 视图中的项目将对象从一个活动传递到另一个活动。现在我遇到的处理项目点击的事情是:

public static class RecylerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public RecylerViewHolder(final View itemView) {
        super(itemView);
        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Context context = itemView.getContext();
        Intent intent = new Intent(context, DetailAct.class);
        context.startActivity(intent);
    }
}

显然它是一个 inner static 类。现在我必须调用要在要传递到下一个 Activity 的项目中膨胀的对象。并且该对象在其外部类中,即在适配器类的 onBindViewHolder 中。
所以当我研究的时候,我发现我们不应该从内部static类中调用外部类的变量。我还想过在我的活动中创建一个构造函数来传递对象,但后来我可能错了,因为这样我不会创建任何活动。现在我完全困惑如何做到这一点。请帮忙

【问题讨论】:

    标签: android parameter-passing android-recyclerview


    【解决方案1】:

    在您的onClick() 方法中,您可以调用getPosition(),这将为您提供所单击项目在数据集中的位置。使用该信息,您可以访问数据集中特定项目的属性,并通过putExtra() 意图方法将它们传递给您的活动。

    【讨论】:

    • getPosition() 现在已被弃用,取而代之的是 getAdapterPosition()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多