2010-12-29 6 views
3

사용자에게 경고하고 EditText 필드가있는 경고 대화 상자를 표시합니다.숫자 EditText 필드가있는 경고 대화 상자

AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    db.open(); 
    Cursor f = db.getTitle(position + 1); 
    alert.setTitle("Age"); 
    alert.setMessage("New age?"); 

    // Set an EditText view to get user input 
    final EditText input = new EditText(this); 
    alert.setView(input); 
    input.setText(f.getString(3)); 
    db.close(); 
    alert.setPositiveButton("Change", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        String age = input.getText().toString(); 
        db.open(); 
        Cursor ff = db.getTitle(position + 1); 
        db.updateTitle(ff.getLong(0), ff.getString(1), 
          ff.getString(2), age, ff.getString(4), 
          ff.getString(5)); 
        db.close(); 
        details(); 
        age(); 
       } 
      }); 

    alert.setNegativeButton("Keep", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      // do nothing 
     } 
    }); 
    alert.show(); 

만 입력 사용자 수 있도록 두 자리 숫자 (아무 문자, 기호 등) 할 수있는 방법이 있나요?

답변

8

나는 당신이 그렇게처럼 EditText 일부 입력 필터와 키 리스너를 설정 제안 :

input.setFilters(new InputFilter[] { 
    // Maximum 2 characters. 
    new InputFilter.LengthFilter(2), 
    // Digits only. 
    DigitsKeyListener.getInstance(), // Not strictly needed, IMHO. 
}); 

// Digits only & use numeric soft-keyboard. 
input.setKeyListener(DigitsKeyListener.getInstance()); 
+0

EditText의 메소드 이름은 setFilter가 아니라 setFilters입니다. (단지 하나의 문자 변경 이었기 때문에 직접 편집 할 수 없었습니다.) –

+2

추가 매개 변수를 사용하면 십진수를 입력 할 수 있습니다. DigitsKeyListener.getInstance (false, true) 정확히 필요한 부분입니다. 감사합니다. 해결 된 미스테로 –

0

숫자 여야한다면, 스피너 또는 드롭 다운 목록을 사용하여 왜 표현하지 않으시겠습니까? 텍스트 상자보다 직관적이어야합니다.

+0

숫자 값의 내용이 무엇인지에 따라 그하지 않을까요? –

+0

주행 거리계는 어때요? 아니면 다른 많은 사람들? 왜 질문을하고, 대답을 주거나 아무 것도하지 마십시오. – Kenny