Recently in the development browser encountered such a demand: Click on the Address bar, you need to select all and bring up the keyboard, click again to cancel the full selection of the display cursor. Click on the screen in addition to other locations in the address bar, the keyboard hidden, hide the cursor.
Most browsers are such logic, which can improve the user experience and reduce the operation.
The code is simple, here I simplify the logic, the page has only one edittext.
The layout files are as follows: There are two attributes in it that need attention.
Android:focusable= "true"
android:selectallonfocus= "true"
Full Layout file
<?xml version= "1.0" encoding= "Utf-8"?> <relativelayout xmlns:android=
"http://schemas.android.com/apk" /res/android "
xmlns:tools=" Http://schemas.android.com/tools "
android:layout_width=" Match_parent
" android:layout_height= "Match_parent"
android:paddingbottom= "@dimen/activity_vertical_margin"
android: paddingleft= "@dimen/activity_horizontal_margin"
android:paddingright= "@dimen/activity_horizontal_margin"
android:paddingtop= "@dimen/activity_vertical_margin"
tools:context= " Com.example.edittexttest.MainActivity ">
<edittext
android:id=" @+id/edit "
android:layout_ Width= "Match_parent"
android:layout_height= "wrap_content"
android:focusable= "true"
Android: Selectallonfocus= "true"
/>
</RelativeLayout>
**mainactivity.java
Package com.example.edittexttest;
Import Android.content.Context;
Import android.support.v7.app.AppCompatActivity;
Import Android.os.Bundle;
Import android.view.MotionEvent;
Import Android.view.View;
Import Android.view.inputmethod.InputMethodManager;
Import Android.widget.EditText;
Import Android.widget.TextView;
public class Mainactivity extends Appcompatactivity {private EditText edittext;
@Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
EditText = (edittext) Findviewbyid (R.id.edit);
Edittext.settext ("Click to select All");
Edittext.clearfocus ();
Edittext.setfocusableintouchmode (FALSE); Edittext.setontouchlistener (New View.ontouchlistener () {@Override public boolean ontouch (view view, Motioneve NT Motionevent) {if (motionevent.getaction () = = motionevent.action_up) {Edittext.setfocusableintouchmo
De (TRUE); Edittext.requEstfocus ();
Edittext.settext ("Click to select All");
Edittext.selectall ();
return false;
}
});
@Override public boolean dispatchtouchevent (motionevent ev) {if (ev.getaction () = = Motionevent.action_down) {
View v = getcurrentfocus (); if (Isshouldhideinput (v, Ev)) {Inputmethodmanager IMM = (inputmethodmanager) getsystemservice (Context.input_metho
D_service);
if (imm.isactive ()) {Imm.hidesoftinputfromwindow (V.getwindowtoken (), 0);
} return super.dispatchtouchevent (EV);
}//Necessary if (GetWindow (). superdispatchtouchevent (EV)) {return true;
} edittext.clearfocus ();
Edittext.setfocusableintouchmode (FALSE);
return ontouchevent (EV);
public boolean isshouldhideinput (View V, motionevent event) {if (v!= null && (v instanceof edittext)) {
Int[] Lefttop = {0, 0}; Get location of TextView V.getlocatioNinwindow (Lefttop);
int left = lefttop[0];
int top = lefttop[1];
int bottom = top + v.getheight ();
int right = left + v.getwidth (); if (Event.getx () > Left && event.getx () < right && event.gety () > Top && event.
GetY () < bottom) {return false;
else {return true;
return false; }
}
Need to be aware of two code snippets
Edittext.setfocusableintouchmode (true);
Edittext.requestfocus ();
The above is a small set of Android to introduce you to the use of EditText click Select All again click Cancel All select function, I hope to help you, if you have any questions please give me a message, small series will promptly reply to everyone. Here also thank you very much for the cloud Habitat Community website support!