2017-03-21 22 views
0

ユーザーがクリックすると、(すべてではありません)を選択します。ユーザーがEditTextをクリックしたときにすべてのテキストを選択する方法はありますか?

final EditText field = (EditText) findViewById(R.id.edittext); 
field.setText("BlaBlaBlaBlaBlaBlaBlaBlaBla"); 

field.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      field.setSelection(0, 10); 
     } 
    } 
}); 

ただし、テキストは選択されていません。クリック点にカーソルが表示されます。

どうすればいいですか?

更新:

の "Hello World" アプリで簡単な方法のsetSelection(開始、終了)が動作しないのはなぜ?

+0

どのくらいの文字を選択しますか? – nandsito

+0

@nandsito、任意の数の文字を選択しますが、すべてのテキストを選択しません。上記の例では、0〜10(テキストの長さは10文字以上)を選択します。 – ilyamuromets

+0

あなたは他のジェスチャーを気にしますか?ダブルタップ、ロングプレス、フリングなどを使用するか、それらを取り除く際に問題はありませんか? – nandsito

答えて

0

私は信じられないほどの解決策を見つけました。 android:selectAllOnFocus = "true"をに設定するか、プログラムで設定します。

、簡単なスニペットコードが正常に動作します:

final EditText field = (EditText) findViewById(R.id.edittext); 
field.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      field.setSelection(0, 10); 
     } 
    } 
}); 

しかし、私はアンドロイド削除する場合:selectAllOnFocus = "true" をまたはを設定する - すべてが破綻します。

なぜわからないのですか?

関連する問題