2012-11-21 18 views
11

私のアプリには編集テキストがあります。ユーザーが編集テキストにタッチすると、テキスト全体が選択され、入力が開始されるとテキストがクリアされます。例はブラウザのアドレスバーです。これを行う方法はありますか?私を助けてください。Android EditText:ユーザーが入力を開始したときにタッチしてクリアしながらすべてのテキストを選択します。

+0

あなたはなぜこれをやりたいのですか教えてください。 – Ishtiaq

+2

はアンドロイドを使用してください:キーボードはこれを有効にした後、ヒント=「表示したいテキストの魔女は、」あなたが行うことができますdespra –

+0

ある[この] [1]のEditText 内のすべてのテキストを選択するには、[1]:のhttp:/ /Asackq.com/a/4669511/1627599 – kittu88

答えて

23

にあなたは

android:selectAllOnFocusを使用してのEditText内のすべてのテキストを選択してもsetSelectAllOnFocus(boolean)

+1

ありがとうございます。これはテキストを選択しますが、編集テキストをタッチしてキーパッドを表示すると、テキストはクリアされません。 – user1767260

+0

これを確認してください[リンク](http://stackoverflow.com/a/4669519/1265724) –

2

は、あなたのmain.xmlファイルに属性を追加します。

android:selectAllOnFocus="true" 

その後、すべてのテキストが選択され、ときにそれを削除するユーザーのタイプ何か。

4

EditText.setSelectAllOnFocus(boolean selectAllOnFocus)を呼び出して、フォーカスしているすべてのテキストを選択します。あなたが代わりにandroid:textのプロパティandroid:hintを使用することができます

は、あなたのEditTextにクリックリスナを設定し、onClickコールedittext.selectAll();

+0

クリックリスナーをEditTextとonClickに設定するedittext.selectAll(); – Ronnie

+0

ありがとう、これは答えよりも優れています。なぜなら、アクティビティに到着したETがすぐに焦点を当てることを望まないかもしれないからです。しかし、XMLで 'onClick'を行うのではなく、私のETアクティビティに' onClickListener'を設定し、その 'onClick()'メソッドで 'selectAll()'メソッドをETに置き、あなたはそれをクリックします。 – Azurespot

1

ことができ、あなたは特別なコードであなたが望むものを手に入れます。

0

またはsetSelectAllOnFocus(boolean)を使用して、編集テキストのすべてのテキストを選択できます。

すべてのテキストが選択されている場合にフラグを設定します。次に、EditTextのaddTextChangedListenerメソッドを使用してテキストの変更を検出し、クラスにTextWatcherクラスを実装する内部クラスを実装または定義させます。

このウォッチャークラスメソッドでは、すべてのテキストが選択されているかどうかを示すフラグをチェックします。真の場合は、TextView.setText("")を実行します。これでテキストが消去されます。その後、フラグをfalseに設定して、後続のテキストの変更によってテキストがクリアされないようにします。

0

これは機能しています。すべてのテキストが選択され、ユーザーがそれを削除するものを入力したとき。

   editText.setSelectAllOnFocus(true); 

      editText.requestFocus(); 
      editText.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        InputMethodManager keyboard = (InputMethodManager) catalougeJobDetailFragment 
          .getActivity().getSystemService(
            Context.INPUT_METHOD_SERVICE); 
        keyboard.showSoftInput(commentEt, 0); 
       } 
      }, 20); 
関連する問題