【问题标题】:Geting context of recylerview item instead of its postion android获取recyclerview项目的上下文而不是它的位置android
【发布时间】:2016-04-21 02:01:43
【问题描述】:

我的应用程序中有一个 recylerview,我能够获取每个项目的位置,但是我不太确定如何从 recylerview 获取位置的上下文;

    mRecyclerView.addOnItemTouchListener(
            new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() {

                @Override
                public void onItemClick(View view, int position) {
                    Snackbar.make(view, "clicked" + " " + position, Snackbar.LENGTH_LONG).setAction("Action", null).show();
                }
            })
    );

此外,每个项目/列的结构都包含一个 textView,我正在向其中添加这样的数据;

list.add(new itemtoadd("John Smith" + "\nMale" + "\nSingle”));

我想要做的是因为我只有一个文本视图包含 3 组数据名称+性别+状态,同时获取位置的上下文我只想从中获取 1 条数据,例如名称的人。

编辑:

现在我编写的代码获取 recylerview 项目的位置,例如它会说单击 1,我想要做的是而不是说单击 1,我希望它获取位置 1 的上下文,例如,在这种情况下,获取 'John Smith, Male, Single'

我的意思是,例如我的 recylerview 中有这些数据;

list.add(new itemtoadd("John Smith0" + "\nMale0" + "\nSingle0”));
list.add(new itemtoadd("John Smith1" + "\nMale1" + "\nSingle1”));
list.add(new itemtoadd("John Smith1" + "\nMale1" + "\nSingle1”));

在这种情况下,我添加到我的 recylerview 的第一个数据将位于位置 0,而不是打印出“位置 0”,我想获取位置 0 中的数据,在这种情况下是; John Smith0、Male0、Single0。

【问题讨论】:

  • “职位背景”是什么意思?你在哪里需要它?
  • 您的具体需求是什么?你所说的位置上下文是什么意思?
  • 请查看已编辑,如果仍然没有意义,请告诉我,我会尝试更好地解释它
  • 您的编辑没有解释“职位背景”的含义。你的意思是来自RecyclerView.Adapter 的模型对象吗?

标签: android android-listview textview onclicklistener android-recyclerview


【解决方案1】:

使用您的模型对象itemtoadd 来检索您的数据,而不是TextView

@Override
public void onItemClick(View view, int position) {

    Snackbar.make(view, "clicked" + " " + position, Snackbar.LENGTH_LONG).setAction("Action", null).show();

    itemtoadd yourItem = list.get(position); // here you get your clicked model item

    // then you can get the String value from your "itemtoadd" model.
}

编辑:

以下是您的 itemtoadd 模型的示例:

public class itemtoadd {

    private String mName;
    private String mGender;
    private String mStatus;


    public itemtoadd(String name, String gender, String status){
       mName = name;
       mGender = gender;
       mStatus = status;
    }

    public String getName(){
      return mName;
    }

    public String getGender(){
      return mGender;
    }

    public String getStatus(){
      return mStatus;
    }

    public String getPersonInformation(){
      return getName()+"\n"+getGender()+ "\n"+getStatus();
    }

}

通过上面的类,您可以分别使用yourItem.getName()yourItem.getGender()、@987654328 获取您的姓名性别状态 @。

【讨论】:

  • 您好,感谢您的回答,itemtoadd 指的是什么?
  • 因为当我写 itemtoadd 时它说无法解析符号 itemtoadd
  • 在您的 OP 中有 list.add(new itemtoadd("John Smith" + "\nMale" + "\nSingle”) ,所以我假设您有名为 "itemtoadd" 的模型对象,不是吗?
  • 现在可以工作了,这些数据现在是否存储在 yourItem 变量中?如果我想在小吃店打印这些数据,我该怎么做?
  • 是的,它在 yourItem 变量中...这取决于您的 itemtoadd.class 的外观。贴出它的代码,也许你有一个返回字符串值的getter方法。
猜你喜欢
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多