2016-11-04 4 views
0

EditTextから文字列を読み込みたい。この文字列はハッシュタグで、#で始める必要があります。だから私はユーザーの入力後に文字列の最初の文字を確認したい。文字列がチェックに失敗した場合、単純なアラートを与えて、入力に再度フォーカスを当てたいので、ユーザーは再度入力を試みることができます。EditTextから最初の文字列を確認する

どうすれば実装できますか?

+0

ユーザー入力はハッシュコードですか? –

+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; 
} 

次にOKボタンを作成します。ボタンについて私はOnClickListenerを実装します。 OnClick私はEditTextからStringを取得します。次に、Stringにメソッドを挿入して、最初の文字を確認します。メソッドが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 
} 
関連する問題