CHarris
CHarris

Reputation: 2793

How do I show the Phone Input softkeyboard when my activity starts?

Between the Activity tags in my AndroidManifest.xml I have :

android:windowSoftInputMode = "stateVisible"

So when my activity starts the soft keyboard comes up:

enter image description here

Is there not something I can add to make the phone input keyboard come up instead? Or how would I do it? Thanks.

enter image description here

EDIT

For the sake of clarity to this question I'm adding this 'edit'.

First of all, thanks for all the answers below.

However, my objective is to have no Edittext Visible on the screen, at first. The Phone Input soft keyboard comes up as soon as the activity starts and when the user starts to type then the Edittext will become visible, with the text being typed.

I tried making the Edittext invisible, and then make it visible when user starts typing, but the problem is an invisible edittext can't have the focus,

So, android:inputType="number" was having no effect. And neither was: edittext.requestFocus(); Because the edittext was invisible.

What I ended up doing eventually was something very simple, setting width and height to 0dp in my xml like :

android:id="@+id/etPhoneNumber"
android:layout_width="0dp"
android:layout_height="0dp"
android:inputType="number" />

That way, the edittext can get focus with

edittext.requestFocus();

as soon as the activity is created, and inputType = "number" is recognised.

The next thing I'll do is increase the size of the edittext as soon as a key is hit on the soft keyboard, so users can see it.

I'll put all this in as an answer so it might be helpful to other users. +1 for the help!

Upvotes: 1

Views: 555

Answers (5)

CHarris
CHarris

Reputation: 2793

The objective is to have no Edittext Visible on the screen, at first.

The Phone Input soft keyboard comes up as soon as the activity starts and when the user starts to type then the Edittext will become visible, with the text being typed.

I tried making the Edittext invisible, and then make it visible when user starts typing, but the problem is an invisible edittext can't have the focus,

So, android:inputType="number" was having no effect. And neither was: edittext.requestFocus(); Because the edittext was invisible.

What I ended up doing eventually was something very simple, setting width and height to 0dp in my xml like :

android:id="@+id/etPhoneNumber"
android:layout_width="0dp"
android:layout_height="0dp"
android:inputType="number" />

That way, the edittext can get focus with

edittext.requestFocus();

as soon as the activity is created, and inputType = "number" is recognised.

The next thing to do now is increase the size of the edittext as soon as a key is hit on the soft keyboard, so users can see it.

Upvotes: 0

Vivek Bhardwaj
Vivek Bhardwaj

Reputation: 528

first of all take an EditText in your xml

 <EditText
            android:id="@+id/etPhoneNumber"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:inputType="number" />

use this piece of code in the onCreate method of your activity !

    EditText etPhoneNumber = (EditText) findViewById(R.id.etPhoneNumber);

    etPhoneNumber.requestFocus();

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

This works for me very well ! Hope it works for you too !

Let me know if this works ! :)

Upvotes: 1

Dharmik Mavani
Dharmik Mavani

Reputation: 107

In manifest file set the property in activity,

android:windowSoftInputMode="stateAlwaysVisible"

and then in your xml where your EditText set the property,

android:inputType="number"

Upvotes: 1

Asutosh Panda
Asutosh Panda

Reputation: 1473

You can add

android:inputType="phone"

or

android:inputType="number"

to your View in your XML layout.

You should have some View in your code where you can give input like EditText or AutoCompleteTextView for changing the type of the keypad.

For example -

       <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:inputType="phone"
        />

Upvotes: 1

AADProgramming
AADProgramming

Reputation: 6345

Assuming that you have an EditText in the Activity which you show once your app is started, you can add below XML Attribute to your EditText.

android:inputType="phone"

Check developer docs for other input types in case if you need.

Upvotes: 1

Related Questions