Yanıtlar:
main.xml
Dosyanızda deneyebilirsiniz :
android:selectAllOnFocus="true"
Veya Java'da şunu kullanın:
editText.setSelectAllOnFocus(true);
editText.setSelectAllOnFocus(true);
Programlı olarak yapmak istiyorsanız bu işe yarar.
Fragments
).
editText.requestFocus()
konu editText.clearFocus()
istenen eylemin görünümü durumunda oluşur sağlamak için önceden zaten odaklı
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
... vb ... daha sonra editText1.setOnFocusChangeListener(listener)
editText2.setOnFocusChangeListener(listener)
vb ...
Bir çözüm bulduğunuzu biliyorum, ancak sorduğunuz şeyi yapmanın doğru yolu, yalnızca android:hint
EditText'teki niteliği kullanmaktır . Bu metin, kutu boş olduğunda ve odaklanmadığında görünür, ancak EditText kutusunu seçtikten sonra kaybolur.
Neden android deneyin : hint = "ipucu" kullanıcıya ipucu sağlamak .. !!
Kullanıcı düzenleme metnini tıkladığında "ipucu" otomatik olarak kaybolacaktır. onun doğru ve en iyi çözüm.
Sonra editText'e bir OnClick Yöntemi de ekleyebilirsiniz.
_editText.setSelectAllOnFocus(true);
ve bunda:
_editText.clearFocus();
_editText.requestFocus();
EditText öğesini tıklar tıklamaz tüm metin seçilir.
SelectAllOnFocus, EditText ilk kez odaklandığında çalışır, ancak kullanıcı metni her tıkladığında metni seçmek istiyorsanız, aralar editText.clearFocus()
arasında arama yapmanız gerekir .
Örneğin, uygulamanızda bir EditText ve bir düğme varsa, EditText'i değiştirdikten sonra düğmesine tıklamak odağı EditText'te bırakır. Daha sonra kullanıcı, yeni bir değer girmeden önce EditText'tekini silmek için imleç tutamacını ve geri silme tuşunu kullanmalıdır. Bu yüzden editText.clearFocus()
Button onClick
yöntemini çağırın .
Yukarıdaki bir yanıtı denedim ve ifadeleri değiştirene kadar çalışmadı. Benim için işe yarayan buydu:
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();
}
}
Odak EditText üzerinde olup olmadığını sormak zorunda kaldı ve değilse odak ilk talep ve sonra temizleyin. Aksi takdirde EditText'i bir sonraki tıklatımda sanal klavye asla görünmez
Bunu .xml dosyasındaki editText'e eklemeniz yeterlidir
android: selectAllOnFocus = "true"
Bu benim için çalışıyor:
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();
}
}
});