回答:
あなたはあなたのmain.xml
ファイルで試すことができます:
android:selectAllOnFocus="true"
または、Javaでは、
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
これは、プログラムで実行する場合に機能します。
Fragments
)。
editText.requestFocus()
問題editText.clearFocus()
EditText dummy = ...
// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});
OnFocusChangeListener listener = new OnFocusChangeListener
...など...その後editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
のように...
OnClickメソッドをeditTextに追加することもできます。
_editText.setSelectAllOnFocus(true);
そしてその中で:
_editText.clearFocus();
_editText.requestFocus();
editTextをクリックするとすぐに、テキスト全体が選択されます。
SelectAllOnFocusはEditTextが最初にフォーカスを取得したときに機能しますが、ユーザーがクリックするたびにテキストを選択したい場合はeditText.clearFocus()
、その間を呼び出す必要があります。
たとえば、アプリに1つのEditTextと1つのボタンがある場合、EditTextを変更した後にボタンをクリックすると、フォーカスがEditTextに残ります。次に、ユーザーは新しい値を入力する前に、カーソルハンドルとバックスペースキーを使用してEditTextの内容を削除する必要があります。したがってeditText.clearFocus()
、ButtonのonClick
メソッドを呼び出します。
上記の答えを試しましたが、ステートメントを切り替えるまで機能しませんでした。これは私のために働いたものです:
myEditText.setSelectAllOnFocus(true);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onClickMyEditText();
}
});
private void onClickMyEditText() {
if(myEditText.isFocused()){
myEditText.clearFocus();
myEditText.requestFocus();
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
フォーカスがEditTextにあるかどうかを尋ね、そうでない場合は最初にフォーカスを要求してからクリアする必要がありました。そうしないと、次にEditTextをクリックしたときに仮想キーボードが表示されません。
これを.xmlファイルのeditTextに追加するだけです
android:selectAllOnFocus = "true"
これは私にとってはうまくいきます:
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(myEditText.isFocused()){
myEditText.requestFocus();
myEditText.clearFocus();
myEditText.setSelection(myEditText.getText().length(), 0);
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
});