2013-04-25 3 views
0

У меня есть много EditTexts. Как я могу подтвердить EditText, имея «» в EditText, и если «EditText» «», то я хочу, чтобы пользователь должен ввести число до того, как оно поступит в edittext2. Как это можно сделать?Проверка в onFocusChange

case R.id.P2Throw1Set2: 
    p212r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p212.getText().toString()))); 
    p2score.setText(String.valueOf(Integer.parseInt(p212r.getText().toString()))); 
    break; 
case R.id.P2Throw2Set2: 
    p222r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p222.getText().toString()))); 
    p2score.setText(String.valueOf(Integer.parseInt(p222r.getText().toString()))); 
    break; 
case R.id.P2Throw3Set2: 
    p232r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p232.getText().toString()))); 
    p2score.setText(String.valueOf(Integer.parseInt(p232r.getText().toString()))); 
    break; 
case R.id.P2Throw4Set2: 
    p242r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p242.getText().toString()))); 
    p2score.setText(String.valueOf(Integer.parseInt(p242r.getText().toString()))); 
    break; 

ответ

0

Вам необходимо отключить все, кроме первого текста редактирования, и включить их только тогда, когда пользователь предоставил удовлетворительный ввод. Затем оберните ParseInt() вызывает в Try/улове блоков, как так:

case R.id.P2Throw2Set2: 
    try 
    { 
     p222r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - 
      Integer.parseInt(p222.getText().toString()))); 
     p2score.setText(String.valueOf(Integer.parseInt(p222r.getText().toString()))); 

     // if the previous lines worked, this will work 
     p232r.setEnabled(true); 
    } 
    catch(NumberFormatException e) 
    { 
     // user entered "" or the value was null 
     // in this case, we leave the next edit text disabled 
    } 
    break; 
0

немного поздний ответ, но вы можете взглянуть на declarative form validation techniques и advanced validation реализованную в рамках Baracus для Android приложений справляющихся с проблемы проверки в приложениях Android. Поскольку материал является открытым исходным кодом, не стесняйтесь использовать исходные фрагменты, справляющиеся с проверкой, если вы не хотите использовать фреймворк.

Смежные вопросы