我在我的应用程序中有一个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”));
我想要做的是因为我只有一个textview包含3组数据Name + gender + status,同时获取位置的上下文我只想从中获取1个数据,例如名称这个人。
编辑:
现在我编写的代码获取了recylerview项目的位置,例如它会说点击1,我想要做的不是说点击1,我想让它获取位置1的上下文,例如,在这种情况下,得到约翰史密斯,男,单身'
我的意思是,比方说我在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'我想得到poition 0中的数据,在这种情况下将是; John Smith0,Male0,Single0。
答案 0 :(得分: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()
,{{1}获取名称,性别,状态 },yourItem.getGender()
。