В этом проекте MainFragment классы пользовательских адаптеров используются для просмотра списка загрузки. Элементы адаптера заполняются из класса бина с именем «PayMode». В этом адаптере есть четыре TextView и один EditText (allocAmt). Этот EditText не заполняется из этого класса бинов. AfterTextChanged для этого 'Edittext' Logcat правильно отображает текст 'editable.toString ()'.
Теперь мне нужно включить кнопку (в MainFragment) afterTextChanged listner для этого 'Edittext (allocAmt)' в адаптере. Ниже мой код.
Adapter.java
public class PayModeAdapter extends ArrayAdapter<PayMode> {
Context context;
ArrayList<PayMode> list;
boolean isAllocatedFinished = false;
public PayModeAdapter(Context context, ArrayList<PayMode> list ) {
super(context, R.layout.row_pay_mode, list);
this.context = context;
this.list = list;
}
public boolean isAllocatedFinished() {
return isAllocatedFinished;
}
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
LayoutInflater inflater = null;
View row = convertView;
Holder holder = null;
final PayMode payMode = list.get(position);
if (row == null)
{
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.row_pay_mode, parent, false);
holder = new Holder();
holder.mode = (TextView) row.findViewById(R.id.txtPayMode);
holder.date = (TextView) row.findViewById(R.id.txtPayDate);
holder.amt = (TextView)row.findViewById(R.id.txtAmount);
holder.remAmt = (TextView)row.findViewById(R.id.txtRemAmount);
holder.allocatedAmt = (EditText)row.findViewById(R.id.editAlloAmount);
holder.allocatedAmt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
isAllocatedFinished = true;
Log.d("PAY_MODE_ADAPTER", "VALUE_IS: " + editable.toString());
}
});
row.setTag(holder);
}
else
{
holder = (Holder)row.getTag();
}
holder.mode.setText(payMode.getFPAYMODE_PAID_TYPE());
holder.date.setText(payMode.getFPAYMODE_PAID_DATE());
holder.amt.setText(payMode.getFPAYMODE_PAID_AMOUNT());
holder.remAmt.setText(payMode.getFPAYMODE_PAID_AMOUNT());
holder.allocatedAmt.setText("0.00");
return row;
}
class Holder {
TextView mode;
TextView date;
TextView amt;
TextView remAmt;
EditText allocatedAmt;
}
}
MainFragment.java
onCreateView(){
payModeArrayList = new PayModeDS(getActivity()).getAllPayModeDetails();
payModeAdapter = new PayModeAdapter(getActivity(), payModeArrayList);
if (payModeAdapter.isAllocatedFinished()){
bCancel.setEnabled(true);
}
}