小编Joh*_*son的帖子

RecyclerView - 在Activity中获取Position而不是RecyclerViewAdapter

现在是我处理查看点击次数的第三天.我最初使用ListView,然后我切换到RecyclerView.我已经android:onclick为我的每个控件添加了元素row_layout,我在这样处理它们MainActivity:

public void MyMethod(View view) {}
Run Code Online (Sandbox Code Playgroud)

在我的旧ListView实现中,我已经完成setTag(position)了通过在其中MyMethod执行此操作来获取它:

Integer.parseInt(view.getTag().toString())
Run Code Online (Sandbox Code Playgroud)

这很好地没有问题.虽然现在我正在处理RecyclerView并被迫使用ViewHolder,但没有提供setTag方法.搜索了2个小时后,我发现人们使用setTag这样的:

holder.itemView.setTag(position)
Run Code Online (Sandbox Code Playgroud)

这是可以接受的.虽然当我尝试MyMethod使用该行从函数中获取值时:

Integer.parseInt(view.getTag().toString())
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃.我已经阅读了适配器内部onclick处理的几个实现,但是我必须使用它,MainActivity因为我使用的是该活动所特有的东西.

TL; DR我想以MainActivity简单的方式将点击的行的位置发送给我.

编辑:我为这个混乱道歉,因为我的主题不是很彻底.我有一个RecyclerView适配器.适配器链接到我的row_layout.这个row_layoutxml有一个根LinearLayout.里面有一个TextView,另一个LinearLayout(有两个TextViews)和一个Button(为简单起见).我不想像处理点击RecylerView那样处理点击ListView.所以,我决定添加一个android:onclick用于每个控制,然后链接TextViewLinearLayout到一个单一的方法和链接Button(和将来ButtonS)其独特的方法.我缺少的是我希望能够在我的每个接收方法上说出立场MainActivity.如果我必须链接来自适配器的所有内容并进入MainActivity单个onclick处理程序,那就这样吧.虽然,我怎么知道哪个控件触发了点击? …

android android-viewholder android-recyclerview

3
推荐指数
1
解决办法
7802
查看次数