У меня проблема с проверкой Edittext в просмотре списка в onFocusChangeListner.
Мой интерфейс выглядит так
MeterName Previous CurrentReading
Meter1 100 Here i want to type current reading
Когда я набираю текущее чтение, оно будет сравниваться с предыдущим чтением. Текущее чтение не может быть меньше предыдущего. Если он меньше, чем предыдущий, я хочу предупредить пользователя, и фокус на том же EditBox.
Мой код здесь:
public void onFocusChange(View v, boolean hasFocus) {
try {
Previous_Reading = getArray_Meter_Reading.getJSONObject(holder.ref)
.getString("PrevMeterReading").toString();
Cumulative = getArray_Meter_Reading
.getJSONObject(holder.ref).getString("Cumulative")
.toString();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(!hasFocus){
int Current=Integer.valueOf(holder.adp_Current.getText().toString());
Previous=Integer.parseInt(Previous_Reading);
if(Current< Previous ){
AlertDialog.Builder builder = new AlertDialog.Builder(
context);
builder.setTitle("WARNING");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage("Please Enter UserName");
builder.setPositiveButton("ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// Caption.requestFocus();
}
});
AlertDialog diag = builder.create();
diag.show();
}
}
} });
С этим кодом, когда я начинаю печатать в EditBox, отображается предупреждение для всех символов, то, что я набираю, если предыдущий - 600, и я печатаю текущее чтение, как 6, - показывает
5 снова alerttdialog, пока он не станет больше предыдущего значения.
Когда я нажимаю на EditText, hasFocus имеет значение true, а когда я набираю любое число, скажем, что 5 фокус меняется на false.
Может кто-нибудь сказать мне, как сделать проверку для этого, предоставив образец кода?