2012-10-23 11 views
8

テキストが内部にあるEditTextオブジェクトはほとんどありません。 EditTextがフォーカスを取得して初めてテキストを削除するのは初めてですが、これは初めてのことです。最初のフォーカスにテキストをクリアテキストを編集する - Android

どうすればいいですか?

ここに例を示します。 テキスト「someText」を含むSomeThingというEditTextがあります。 ユーザーがSomeThingに初めて触れるときに、「someText」を削除したい。 それで、テキストが削除され、今ユーザが自分のテキストを入力したとしましょう、今回は "someOtherText"となり、EditTextは他のEditTextのフォーカスを失いました。今回は、ユーザーがSomeThingをタップするときに、「someOtherText」が2回目のフォーカスを取得するため削除されません。

+0

最初にアプリを開いたり、アプリをインストールしたりしたことは初めてですか? – Sieryuu

+0

私は、editTextオブジェクトが初めてフォーカスしていることについて話しています。 –

答えて

9

これは、あなたが見ているものであればMatanは、私はわからないが、私はあなたがこのhttp://www.giantflyingsaucer.com/blog/wp-content/uploads/2010/08/android-edittext-example-3a.jpgをチェックするたとえば、あなたのテキスト編集用'hint'

<EditText 
. 
. 
android:hint="Please enter your name here"> 

を表示したいと思います

+0

正確には、私はそのオプションを探していましたが、それが存在するかどうかはわかりませんでした。ありがとう! –

2

EditTextのプレースホルダを追加する方法をお探しの場合は、android:hint = 'some text'を対応するXMLファイルに追加するか、またはのsetHint('some text')メソッドを呼び出してください0。

それ以外の場合は、OnFocusChangeListener()を使用してフォーカス取得イベントに応答できます。 EditTextがフォーカスを得るのが初めてであるかどうかを確認するには、別のBoolean変数(例:isFirstTimeGetFocused)を使用し、onCreate()メソッドでtrueに初期化します。 EditTextがフォーカスされた後、isFirstTimeGetFocusedfalseに設定します。

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    if(hasFocus && isFirstTimeGetFocused){ 
     editText.setText(""); 
     isFirstTimeGetFocused = false; 
    } 
}); 
+0

注:フィールドが階層の最初のフィールドである場合は、すでにルートビューグループにfocusableとfocusableintouchmodeを設定して、アクティビティの開始にまだ集中しないようにする必要があります。 –

関連する問題