我有一个Activity
包含 2TextView
显示一个数值并且RecyclerView
在它们下面有一个,RecyclerView
有一个TextView
带有一个数值和一个的SwitchCompat
,我希望如果用户将其SwitchCompat
转为内部的ON
数字以添加到外部的数字并且如果切换到数字,则从外面的数字中减去。TextView
RecyclerView
TextView
RecyclerView
SwitchCompat
OFF
TextView
我试图将它传递TextView
给RecyclerViewAdapter
适配器类并在适配器类中使用它,但发生错误,它第一次工作正常但是当滚动随机数以从 , 中添加和减去时TextView
,以下是我的代码:
适配器类.java
@Override
public void onBindViewHolder(@NonNull final ExpensesListAdapterViewHolder holder, int position) {
...
holder.switchComp.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
eList.get(holder.getAdapterPosition()).setmFlag(isChecked);
if (isChecked) {
if (TextUtils.isEmpty(eList.get(holder.getAdapterPosition()).getmExpenseName())) {
// switch is on + Increase Budget
totalBudget.setText(String.valueOf(Double.parseDouble(totalBudget.getText().toString())+eList.get(holder.getAdapterPosition()).getmAmount()));
totalRemaining.setText(String.valueOf(Double.parseDouble(totalRemaining.getText().toString())+eList.get(holder.getAdapterPosition()).getmAmount()));
} else if (TextUtils.isEmpty(eList.get(holder.getAdapterPosition()).getmI_B_Name())) {
// switch is on + expense
totalExpense.setText(String.valueOf(Double.parseDouble(totalExpense.getText().toString())+eList.get(holder.getAdapterPosition()).getmAmount()));
totalRemaining.setText(String.valueOf(Double.parseDouble(totalRemaining.getText().toString())-eList.get(holder.getAdapterPosition()).getmAmount()));
}
} else {
if (TextUtils.isEmpty(eList.get(holder.getAdapterPosition()).getmExpenseName())) {
// switch is off + increase budget
totalBudget.setText(String.valueOf(Double.parseDouble(totalBudget.getText().toString())-eList.get(holder.getAdapterPosition()).getmAmount()));
totalRemaining.setText(String.valueOf(Double.parseDouble(totalRemaining.getText().toString())-eList.get(holder.getAdapterPosition()).getmAmount()));
} else if (TextUtils.isEmpty(eList.get(holder.getAdapterPosition()).getmI_B_Name())) {
// switch is off + expense
totalExpense.setText(String.valueOf(Double.parseDouble(totalExpense.getText().toString())-eList.get(holder.getAdapterPosition()).getmAmount()));
totalRemaining.setText(String.valueOf(Double.parseDouble(totalRemaining.getText().toString())+eList.get(holder.getAdapterPosition()).getmAmount()));
}
}