私はRecyclerViewでCheckedTextView
を使用しています。私はxmlでcheckedTextViewを1つだけ定義しました。そして私はサーバからの動的なデータでrecylerViewを膨らませます。今私は選択されたCheckedTextViewだけ他のunchecked中にチェックしたいと思います。 CheckedTextViewはチェックする必要がありますが、チェックされている場合はチェックされないままにしておきます。チェックはどのようにチェックされていますかチェックしてください他のチェックを外した状態でrecyclerView内のテキストビュー
ここに書いたコードです。
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回タップするとチェックされ、他のテキストビューがクリックされたときに状態が変わることはありません。 –
申し訳ありませんが、私はそれがあなたがしたいと思っていることをかなり理解していないと思います! – BonBon
あなたはそれに応じてあなたの答えを編集できますか?私はこの回答を実装しました –