相关疑难解决方法(0)

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
查看次数

如何检查在recyclerview子项中单击了哪个项目

recyclers子视图包含两个可点击的对象,一个是一组TextViews和ImageView,另一个是CheckBox(请参阅 - Android Recyclerview Multiple onclick项目)我想看看是否在孩子上点击了复选框.如果是这样,那么我改变了CheckBox的状态.否则,我发起另一项活动(结果).上面的链接显示了在视图持有者中处理点击次数.我想在我设置RecyclerView的其他活动中处理点击.

    //the view needs a listener
    final GestureDetector mGestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() {

        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }

    });


    mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
            View child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());

            if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){

                if(child.getId() == R.id.chk_box_pin){
                        //checking, this didn't work
                }
                else {
                    TextView idView = (TextView) child.findViewById(R.id.note_id_txt_vw);
                    if (DEBUG) Toast.makeText(getActivity(),
                            "ID is " + idView.getText().toString(), Toast.LENGTH_SHORT).show();
                    startEditNoteActivity(ActivityContract.ACTIVITY_EDIT, idView.getText().toString());
                }
                return true;
            }

            return …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

获取Recycler View上已点击项目的位置

我已经实现了RecyclerView它,它工作正常.我有一个ArrayList包含Recycler视图的数据.每个项目的布局都很复杂.它包含两个frameLayout.framelayout1包含图像和文本,framelayout2包含图像和四个文本.当用户点击framelayout1时,我想打开Activity1,当用户点击framelayout2时,我想打开Activity2.我已经搜索的onClick在回收站查看,我发现非常有用.但是如何获取arrayList的位置以便通过activity1或activity2中的Intent传递它?

android android-recyclerview

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

如何为RecyclerView设置onItemClickListener?

我正在尝试实现recyclerView但是如何为我的recyclerView设置onItemClickListener?

android onitemclicklistener android-recyclerview

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

如何在回收站视图上添加 OnItemClick 侦听器

我在片段中使用了一个 recycleView,我想向它添加 itemClickListener。这是我的代码:

我的适配器.java:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

    private String[] mDataset;

    public static class MyViewHolder extends RecyclerView.ViewHolder{
        public CardView mCardView;
        public TextView mTextView;
        public MyViewHolder(View v){
            super(v);

            mCardView = (CardView) v.findViewById(R.id.card_view);
            mTextView = (TextView) v.findViewById(R.id.tv_text);

        }

    }

    public MyAdapter(String[] myDataset){
        mDataset = myDataset;
    }

    @Override
    public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item, parent, false);
        MyViewHolder vh = new MyViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, final int position){
        holder.mTextView.setText(mDataset[position]);
    }

    @Override
    public int …
Run Code Online (Sandbox Code Playgroud)

android onclicklistener android-recyclerview

-6
推荐指数
1
解决办法
7325
查看次数