我有数千个项目存储在字符串数组中,并且没有一个是dublicate,我已经将它们全部显示在列表中。现在,我想显示描述是否单击了文本,我将在警告对话框中显示它们,有没有办法存储值作为文本点击而非按位置?我不想使用职位来打电话给他们,因为如果以后我必须删除列表中的任何内容,那么我必须重新制作所有内容。所以,我想要的是文字" vishnu"单击然后将名为vishnu的东西作为id并根据文本调用vishnu描述单击而不是按位置。提前致谢!!这是我们为职位做的事情
@Override
public void onBindViewHolder(final NameViewHolder holder, final int position) {
holder.textView.setText(names.get(position).textView);
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "" + position, Toast.LENGTH_SHORT).show();
}
});
}
答案 0 :(得分:0)
使用getTag()/ setTag在视图中存储数据。例如:
使用字段标题和说明
创建新类public class SomeObject{
String title;
String description;
}
在适配器外部创建新列表并通过此对象填充它。 把它们推到适配器上。
ArrayList<SomeObject> mList = new ArrayList<>();
public void setData(ArrayList<SomeObject> list ){
mList = list;
notifyDataSetChanged();
}
@Override
public void onBindViewHolder(final NameViewHolder holder, final int position) {
holder.textView.setText(mList.get(position).title); // here is a title
holder.textView.setTag(mList.get(position)); // push whole object to tag
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SomeObject someObject = (SomeObject)view.getTag(); // fetch object from tag of view
Toast.makeText(view.getContext(), someObject , Toast.LENGTH_SHORT).show();
}
});
}
答案 1 :(得分:0)
创建一个Hashtable
(自己选择一个适合的类。我不确定但是Toast.makeText(view.getContext(), myDictionary.get((string)view.getTag()), Toast.LENGTH_SHORT).show();
可能有效),它为每个字符串保存一个Key值对,键是字符串本身,值是单击该字符串时要显示的说明。
然后你可以使用:
//In Class
Dictionary<string, string> myDict;
//In ctor (or anywhere before you need it)
string nameString = "Marlon";
string descriptionString = "Some dude currently on stackoverflow.";
myDict = new Hastable<string, string>(); //Create dictionary
myDict.put(nameString, descriptionString); //Fill dictionary
//When you want to get your string
string output = myDict.get("Marlon"); //Get description
descriptionTextView.text = output; //Put text at screen
获取相应的文字。
编辑2:如何使用词典(示例):
{{1}}
修改:在这里,您可以找到the documentation。