2011-09-11 12 views
1

私は最初のAndroidアプリケーションを作成しようとしています。アンドロイドのテキストビューで新しい行を検出します

単純に、ある行がハイフンで始まったときに、次回に新しい行があるときに、その新しい行の前にハイフンが置かれるような検出を書いています。

私はこれが私の最初のアプリであるため、私はどこを見ているべきかの指針や指示を探しています。

または、別の意味では、入力されているテキストを検出し、それに基づいてEditTextを変更する最も良い方法は何でしょうか。

+0

あなたは[チュートリアル](http://developer.android.com/resources/browserが完了しました。 html?tag = tutorial)? – jacknad

答えて

1

イベントにアタッチできるアンドロイドのテキストウォッチャークラスを使用できます。

EditText mPasswordLength = (EditText)findViewById(R.id.password_length); 
mPasswordLength.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s){ 
    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){ 
    } 
    public void onTextChanged(CharSequence s, int start, int before, int count){ 
    } 
}); 

テキストの編集に使用できる方法は、onTextChangedです。これらのイベントがいつ、なぜ発生したかについての詳細な説明は、post.に説明されています。最高の投票で答えを読んでください。

0

あなたはそれがeventであるかどうかを確認し、その後、リスナーのonKey(View v, int keyCode, KeyEvent event)方法では、EditTextためOnKeyListenerをしたいがKeyEvent.ACTION_DOWNあるので、その後、追加した場合keyCodeは、KeyEvent.KEYCODE_ENTERのためである - のEditTextの最後に「」を。

1

ソフトキーボードではOnKeyListenerが機能しないため、TextWatcherの使用をおすすめします。

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    if(-1 != charSequence.toString().indexOf("\n")){ 
     // Do your stuff 
    } 
} 

あなたには、いくつかの他の文字列で、この配列を置換したい場合は、この方法を試してください。

public void afterTextChanged(Editable editable) { 

    int i = editable.toString().indexOf("\n"); 
    if (i != -1) { 
     editable.replace(i, i+1, ""); 
    } 
} 
関連する問題