1 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
為持有 TextView的Activity/添加回調(diào)以獲取總成本:Fragment
interface OnCostChangeListener {
void onChange(List<Item> list);
}
實(shí)現(xiàn)它:
class MyActivity extends AppCompatActivity implements OnCostChangeListener {
//...
@Override
public void onChange(List<Item> list) {
int sum = 0;
for (Item it : list) {
sum += it.getCost();
}
((TextView) findViewById(R.id.totalCost)).setText(String.valueOf(sum));
}
//...
}
訂閱適配器:
private OnCostChangeListener mListener;
public ItemsAdapter(OnCostChangeListener listener){
super(DIFF_CALLBACK);
this.mListener = listener;
}
并在以下位置使用偵聽(tīng)器TextWatcher:
editTextCost3.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mItems.get(getAdapterPosition()).setmCost(editTextCost3.getText().toString());
if (mListener != null) {
mListener.onChange(mItems);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
升級(jí)版。它應(yīng)該cost存儲(chǔ)Item為數(shù)字(整數(shù),在示例中),而不是字符串
添加回答
舉報(bào)