单击项目后如何关闭回收器视图持有者?
How to close recycler view holder after clicking an item?
我正在尝试关闭视图持有者(在编辑文本中搜索后显示的项目列表)。但是我找不到合适的功能或方法来做到这一点!
有帮助吗?
我有一个搜索适配器,我尝试覆盖 onBindViewHolder 并尝试关闭那里的回收器视图。但我正在努力寻找正确的功能或方式..
@Override
public void onBindViewHolder(final SearchViewHolder holder, int position) {
holder.full_name.setText(fullNameList.get(position));
holder.full_name.setBackgroundColor(selectedPos == position ? Color.GREEN : Color.LTGRAY);
holder.full_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
if (holder.getAdapterPosition() == RecyclerView.NO_POSITION) return;
notifyItemChanged(selectedPos);
selectedPos = holder.getLayoutPosition();
notifyItemChanged(selectedPos);
Toast.makeText(context, ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); //Here I get the text string
// close keyboard on click
v.clearFocus();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
});
}
你的问题不清楚。
您也许可以清除 fullNameList 并执行 notifychange?
@Override
public void onClick(final View v) {
if (holder.getAdapterPosition() == RecyclerView.NO_POSITION) return;
notifyItemChanged(selectedPos);
selectedPos = holder.getLayoutPosition();
notifyItemChanged(selectedPos);
Toast.makeText(context, ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); //Here I get the text string
//Clears the list and notify the adapter
fullNameList.clear();
notifyDataSetChanged();
v.clearFocus();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
尽管 AutoCompleteTextView 应该可以很好地完成这项工作。
我正在尝试关闭视图持有者(在编辑文本中搜索后显示的项目列表)。但是我找不到合适的功能或方法来做到这一点! 有帮助吗?
我有一个搜索适配器,我尝试覆盖 onBindViewHolder 并尝试关闭那里的回收器视图。但我正在努力寻找正确的功能或方式..
@Override
public void onBindViewHolder(final SearchViewHolder holder, int position) {
holder.full_name.setText(fullNameList.get(position));
holder.full_name.setBackgroundColor(selectedPos == position ? Color.GREEN : Color.LTGRAY);
holder.full_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
if (holder.getAdapterPosition() == RecyclerView.NO_POSITION) return;
notifyItemChanged(selectedPos);
selectedPos = holder.getLayoutPosition();
notifyItemChanged(selectedPos);
Toast.makeText(context, ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); //Here I get the text string
// close keyboard on click
v.clearFocus();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
});
}
你的问题不清楚。 您也许可以清除 fullNameList 并执行 notifychange?
@Override
public void onClick(final View v) {
if (holder.getAdapterPosition() == RecyclerView.NO_POSITION) return;
notifyItemChanged(selectedPos);
selectedPos = holder.getLayoutPosition();
notifyItemChanged(selectedPos);
Toast.makeText(context, ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); //Here I get the text string
//Clears the list and notify the adapter
fullNameList.clear();
notifyDataSetChanged();
v.clearFocus();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
尽管 AutoCompleteTextView 应该可以很好地完成这项工作。