Before you downvote and mark as duplicate, read my question.
I've read the other questions discussing this, and all of them work for my layouts, except for the very first one created.
At the moment, this is at the top of my onCreate
method:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
^ That makes it so at least the keyboard doesn't pop up on startup, but the EditText
is still focused on.
This is the XML
for my EditText
:
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/changePass"
android:layout_centerHorizontal="true"
android:layout_marginTop="167dp"
android:ems="10"
android:imeOptions="flagNoExtractUi"
android:inputType="textPassword"
android:maxLength="30" >
</EditText>
This is what it looks like when I bring up my activity:
The problem is that with some phones, when an EditText
is focused like this, they can't write in it. I want it to not focus.
What I've done works for the next layouts brought up in that it the EditTexts
are not focused on and would look more like this:
Notice that it's the same layout, though. This is the screen after the user has been brought back to this screen, which would indicate nothing wrong with the XML
because this is the same XML
, but the problem is that the EditText
is only focused on when the activity is created.
I've done research and all of the other questions don't help me with this (they did however help the keyboard not show up, thankfully). How can I make it so the EditText
on startup will look like the second screenshot, rather than the first?
The easiest way is to add
in the activity tag of the Manifest.xml file
XML code:
Java code:
the best solution is here: https://stackoverflow.com/a/45139132/3172843
the correct and simple solution is to setFocusable false and setFocusableInTouchMode true . so the EditText gain focus only when user touch that EditText
It is possible to use
android:focusable="false"
to disable it, but if that does not work for some reason, then you can simply put aLinearLayout
and it will take the focus without disrupting your layout.NOTE: Eclipse will give you an error saying that your
LinearLayout
is useless because it has no contents. You should be able to disregard it with no problems.For example:
In your main_layout add this 2 lines:
example:
1) Its the simplest,open the manifest and put the following code between the activity tag:
2) Put this attributes in the parent layout