tags:

views:

175

answers:

2

I am writing an app for android phones and after my splash screen it shows an activity which has several spinners and edittext views.

On an android device without a keyboard it shows the virtual keyboard which then blocks the rest of the app and looks unprofessional to me. I have tried to hide the virtual keyboard in the activity.onCreate method however no avail there.

My next option I tried was setting an onFocus listener to the actual offending edittext view and still no avail.

How can I prevent the virtual keyboard from showing until a user explicitly clicks an edittext view? Is there a way to give one of the spinner's focus since one of the spinners is before the edittext view in the layout xml?

+1  A: 

You can try this:

Oncreate of your activity, set the input type to TYPE_NULL. Then, onTouch, set it to TYPE_CLASS_TEXT.

    myText.setInputType(InputType.TYPE_NULL);

    myText.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
        myText.setInputType(InputType.TYPE_CLASS_TEXT);
        myText.onTouchEvent(event); // call native handler
        return true; // consume touch even
        } 
    });
Chris
Thanks a bunch, now my app acts more professional. I noticed other apps like the yahoo email app work in the same way, nice to have apps look alike to add to feel and functionality.
jeep
if this worked for you, you should accept the answer.
Manfred Moser
+1  A: 

You can try setting the android:windowSoftInputMode attribute of your Activity's entry in the AndroidManifest.xml file. I think setting it to stateHidden might do what you want.

Here's the docs from the Android site.

mportuesisf