【发布时间】:2017-05-13 07:46:29
【问题描述】:
我的代码是:
JSONArray jsonArray=new JSONArray(response);
if(jsonArray.length()==0){
Toast.makeText(context,"No Data",Toast.LENGTH_SHORT).show();
}else {
for (int i = 0; i < jsonArray.length(); i++) {
innerListData = new TakeAttendanceModel();
innerListData = ((TakeAttendanceModel) JSonUtil.jsonToObject(jsonArray.getString(i), TakeAttendanceModel.class));
innerListData.status = "P";
innerListData.attendanceDate = DateTimeUtils.getDate();
attenList.add(innerListData);
}
submitAtten=(Button)rootView.findViewById(R.id.takeAttendanceSubmit);
submitAtten.setVisibility(View.VISIBLE);
}
Log.d("Responsse : ", response);
}
takeAttendanceAdapter = new TakeAttendanceAdapter(context,attenList);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(context);
recyclerViewAttendanceList.setLayoutManager(mLayoutManager);
recyclerViewAttendanceList.setItemAnimator(new DefaultItemAnimator());
recyclerViewAttendanceList.setAdapter(takeAttendanceAdapter);
takeAttendanceAdapter.notifyDataSetChanged();
我的适配器代码是:
private List<TakeAttendanceModel> list;
public TakeAttendanceAdapter(Context context, List<TakeAttendanceModel> list) {
this.context = context;
this.list = list;
}
@Override
public AttendanceListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View convertview = LayoutInflater.from(parent.getContext())
.inflate(R.layout.inner_list_attendance, parent, false);
return new AttendanceListViewHolder(convertview);
}
@Override
public void onBindViewHolder(final AttendanceListViewHolder holder, final int position) {
holder.textViewStudentName.setText(list.get(position).studFullName);
holder.textViewStudentRollNumber.setText(list.get(position).primaryKey);
holder.texViewStudentPreFix.setText(list.get(position).prefix);
holder.SSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
//final LinkedList<String> innerLinklist=new LinkedList<>();
if (isChecked) {
/*innerLinklist.add(list.get(position).primaryKey);
innerLinklist.add(list.get(position).studFullName);
innerLinklist.add(list.get(position).status="P");*/
// linkedList.add(innerLinklist);
//Log.v("Attndce Liist After Toggle",linkedList.toString());
list.get(position).status="P";
} else {
/*innerLinklist.add(list.get(position).primaryKey);
innerLinklist.add(list.get(position).studFullName);
innerLinklist.add(list.get(position).status="A");*/
// linkedList.add(innerLinklist);
//Log.v("Attndce Liist After Toggle",linkedList.toString());
list.get(position).status="A";
}
Log.v("Attndce Inner",list.toString());
//DataManager.factory().linkedList.add(innerLinklist);
//Log.v("Attndce Full Linklist",DataManager.factory().linkedList.toString());
}
});
//Log.v("Attndce Liist After Toggle",DataManager.factory().linkedList.toString());
}
@Override
public int getItemCount() {
return list.size();
}
public class AttendanceListViewHolder extends RecyclerView.ViewHolder {
/*public ImageView imageViewProfilePic;*/
public TextView textViewStudentName, textViewStudentRollNumber,texViewStudentPreFix;
public SwitchCompat SSwitch;
public AttendanceListViewHolder(View convertview) {
super(convertview);
texViewStudentPreFix=(TextView)convertview.findViewById(R.id.textAttendanceStudentPrfix) ;
textViewStudentName = (TextView) convertview.findViewById(R.id.textViewAttendanceStudentName);
textViewStudentRollNumber = (TextView) convertview.findViewById(R.id.textViewAttendanceStudentRollno);
SSwitch = (SwitchCompat) convertview.findViewById(R.id.textViewAttendanceSwitch);
}
}
这是我的适配器代码,其中放置了开关。
实际上在 RecylerView 中我放置了一个开关按钮,当开关按钮在 0 位置打开时,自动开关在第 9 位置后打开。
请给我一个解决方案。
【问题讨论】:
-
请添加您尝试过的代码。
-
你的适配器代码在哪里?
-
blog.inapptext.com/… - 使用此博客作为参考来控制用户在回收站视图上的操作
-
请查看适配器代码#Mohammed Atif
标签: android android-recyclerview