我在RecyclerView中使用CheckedTextView
。我只在xml中定義了一個checkedTextView。我用來自服務器的動態數據給recylerView充氣。現在我想只檢查選中的CheckedTextView而其他unChecked。只有一個CheckedTextView應該被選中,而其他的CheckedTextView在選中時應該保持未選中狀態。如何檢查裏面recycledView CheckedTextView而其他未經檢查
這是我寫的代碼。
public class CategoriesAdapter extends RecyclerView.Adapter<CategoriesAdapter.ViewHolder> {
CategoriesDTO categoriesDTO;
String categories[];
public CategoriesAdapter(CategoriesDTO categoriesDTO){
this.categoriesDTO=categoriesDTO;
}
public CategoriesAdapter(String[] categories){
this.categories=categories;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.categories_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.category.setText(categories[position]);
}
@Override
public int getItemCount() {
return categories.length;
}
public static class ViewHolder extends RecyclerView.ViewHolder{
public CheckedTextView category;
public ViewHolder(View itemView) {
super(itemView);
category=(CheckedTextView)itemView.findViewById(R.id.category);
}
}
}
這就是我設置它的方式,但它檢查了所有CheckedTextView。
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(), new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
CheckedTextView checkedTextView = (CheckedTextView) view.findViewById(R.id.category);
checkedTextView.setChecked(true);
Toast.makeText(getContext(), "" + categories[position], Toast.LENGTH_SHORT).show();
String url = Constants.URL_BASE_CATEGORY + categories[position];
new MyAsyncTask().execute(url);
}
}));
怎麼辦?
感謝您考慮應答,但這並不真正按我希望它的方式工作。首先它不會在第一次點擊時設置checkTextview。當我點擊5或6次時,它會被檢查,並且當其他textview被點擊時它不會改變它的狀態。 –
對不起,我想我不太明白你想做什麼呢! – BonBon
你可以根據它來編輯你的答案嗎?我已經實現了這個答案 –