나는 recyclerview 용 어댑터를 가지고 있습니다. 어디에 내가 데이터 같은 ArrayList 어떤 데이터가있는 내 활동에서 배열 목록을 전달합니다.recyclerView에서 확인란을 구현하는 방법은 무엇입니까?
AlternativeAdapter alternativeAdapter= new AlternativeAdapter(AlternativeActivity.this, data);
recyclerView.setAdapter(alternativeAdapter);
대체 어댑터 클래스에는 텍스트보기와 확인란이 있습니다. 체크 박스가있는 모든 텍스트 항목을 표시 할 수 있습니다. AlternativeAdapter 클래스
public class AlternativeCurrencyAdapter extends RecyclerView.Adapter<AlternativeCurrencyAdapter.ViewHolder>{
ArrayList<String> currencyListArray;
Context context;
View view1;
ViewHolder viewHolder1;
TextView textView;
private int selectedPosition = -1;// no selection by default
public AlternativeCurrencyAdapter(Context context1, ArrayList<String> currencyListArray){
this.currencyListArray = currencyListArray;
context = context1;
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView username;
public CheckBox chkSelected;
public ViewHolder(View v){
super(v);
username = (TextView)v.findViewById(R.id.username);
chkSelected = (CheckBox) v.findViewById(R.id.chkSelected);
itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// get position
int pos = getAdapterPosition();
// check if item still exists
if(pos != RecyclerView.NO_POSITION){
String clickedDataItem = currencyListArray.get(pos);
Toast.makeText(v.getContext(), "You clicked " + clickedDataItem, Toast.LENGTH_SHORT).show();
}
}
});
}
}
@Override
public AlternativeCurrencyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
view1 = LayoutInflater.from(context).inflate(R.layout.alternative_currency_adapter_list,parent,false);
viewHolder1 = new ViewHolder(view1);
return viewHolder1;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position){
holder.username.setText(currencyListArray.get(position));
}
@Override
public int getItemCount(){
return currencyListArray.size();
}
}
배열 목록의 항목이 표시됩니다 이런 식으로
하지만 내 필요에
오른쪽 모서리에 표시해야합니다 왼쪽 모서리와 각 항목의 체크 박스에 표시해야합니다 항목에 있습니다. 체크 박스 토스트 메시지를 클릭하면 XYZ 항목을 선택한 것과 같은 메시지가 나타납니다. 또한 다중 선택이 아닌 단일 선택 만 필요합니다. 내가holder.chkSelected.setChecked(currencyListArray.get(position).isSelected());
를 사용할 때
나는 쇼 타임 오류를 컴파일합니다. 해결할 수 없습니다 isSelected()
나를 안내하십시오.
입니다 isSelected는 Arraylist 메소드이지만 isSelected()는 arraylist 메소드가 아닙니다. currencyListArray.get (position)은 ArrayList의 값 반환 값입니다. 반환하지 않음 확인란은 선택되어 있지 않습니다. –
RecyclerView에서 단일 선택에 대한이 링크를 확인하십시오. https://stackoverflow.com/questions/39127008/how-can-i-select-only-one-checkbox-in-recyclerview-and-notifydataset-changed –