2016-11-04 2 views
0

EditText에서 String을 읽길 원합니다. 이 문자열은 해시 태그이며 #으로 시작해야합니다. 그래서 사용자 입력 후 문자열의 첫 번째 문자를 확인하고 싶습니다. 문자열이 검사에 실패하면 간단한 경고를주고 다시 입력을 시도 할 수 있도록 입력에 다시 초점을 맞추고 싶습니다.EditText에서 문자열의 첫 번째 문자 확인

어떻게 구현할 수 있습니까?

+0

사용자 입력은 hashCode입니까? –

+0

아니요, 사용자 입력은 간단한 문자열입니다. – dudi

답변

0

(인덱스 0) 시작에서 문자를 확인 결과 문자열에서 수행 할 수 내 문제에 대한이 해결책. 처음에는 String의 첫 번째 문자를 검사하고 첫 번째 문자가 같지 않으면 Alert를 만들고 부울을 반환하는 메서드를 작성했습니다.

public boolean checkFirstChar (String s, char c) { 
    boolean isConform = false; 
    if (s.charAt(0) != c) { 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(SettingsActivity.this); 
     // set title 
     alertDialogBuilder.setTitle("Input not conform!"); 
     // set dialog message 
     alertDialogBuilder 
       .setMessage("Your hashtag should start with " + c) 
       .setCancelable(false) 
       .setNegativeButton("OK",new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int id) { 
         // if this button is clicked, just close 
         // the dialog box and do nothing 
         dialog.cancel(); 
        } 
       }); 

     // create alert dialog 
     AlertDialog alertDialog = alertDialogBuilder.create(); 

     // show it 
     alertDialog.show(); 
    } else { 
     isConform = true; 
    } 
    return isConform; 
} 

그런 다음 확인 버튼을 만듭니다. 버튼에서 OnClickListener를 구현합니다. OnClick 나는 EditText에서 문자열을 가져옵니다. 그런 다음 String을 Method에 입력하여 첫 번째 문자를 확인합니다. Method가 true를 반환하면 설정을 저장하고 다음 활동을 시작합니다. 그렇지 않다면 EditText Focus로 돌아 왔습니다.

//set onClickListener on OK Button 
    btn_ok.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      //get selected Item from Spinner HashTag Item 
      strgHashtag = spinner_hashtag.getSelectedItem().toString(); 

      //get String form EditText addHashTag 
      strgAddHashtag = edit_addHashTag.getText().toString(); 

      //check if the first char == # 
      if (checkFirstChar(strgAddHashtag, '#') == true) { 

       //if true, add String to HashTagItem List 
       spinner_HashTagItems.add(strgAddHashtag); 

       //save settings into a JSON File on SD-Card 
       saveSettings(); 

       //and put the hashTagString into an IntenExtra for the HomeActivity 
       Intent intent = new Intent(SettingsActivity.this, HomeActivity.class); 
       intent.putExtra("hashTag", strgHashtag); 
       startActivity(intent); 
       finish(); 
       //if the char != '#' 
      } else { 
       //return to the user input 
       edit_addHashTag.requestFocus(); 
      } 
     } 
    }); 

이 코드가 다른 커뮤니티 회원이 같은 문제를 해결할 수 있기를 바랍니다.

1

당신이 IST 문자열 컨텍스트를 얻어서 편집 텍스트를 확인할 수 있습니다 ... 이 gettext에 메서드를 호출하고 내가 찾은

EditText myInput =.... 
if(myInput.getText().charAt(0) !='#'){ 
    //modal dialog and/ or toast! 
} else { 
    // ok 
} 
관련 문제