0

I intend to show a popup window with an EditText in it, and once shown keyboard could activate automatically :

public void showPopup(View view) // a button invoke
{
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View content = inflater.inflate(R.layout.popup, null);
    PopupWindow pw = new PopupWindow(content, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, true);
    pw.setBackgroundDrawable(new BitmapDrawable());
    pw.showAtLocation(view, Gravity.TOP, 0, 0);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    (new Handler()).post(new Runnable() {
        public void run() {
            InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
        }
    });
}

and popup.xml is:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

>
<EditText android:id="@+id/edit_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello Android!!"
android:hint="Filling in it!!"
android:layout_weight="1"
android:selectAllOnFocus="true"
android:focusable="true"
android:focusableInTouchMode="true"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go!" 

/>
</LinearLayout>

It works well on portrait mode but does not on Landscape mode after adding codes as follow:

protected void onResume() {
    if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}

Could pleas anyone give some solutions??

lindeer
  • 1
  • 3

2 Answers2

1

edit in your popup.xml file

 <LinearLayout............
  .....
  android:focusable="true"
 android:focusableInTouchMode="true" ...

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:focusable="true"
 android:focusableInTouchMode="true"
 >
 <EditText android:id="@+id/edit_message"
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:text="Hello Android!!"
 android:hint="Filling in it!!"
 android:layout_weight="1"
 android:selectAllOnFocus="true"
 android:focusable="true"
 android:focusableInTouchMode="true"
 />
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Go!" 
 />
 </LinearLayout>
Manoj Manani
  • 507
  • 4
  • 9
  • same as your popup.xml file but only add (android:focusable="true" and android:focusableInTouchMode="true") in LinearLayout... – Manoj Manani Aug 30 '12 at 09:55
0

add in your xml at EditText requestFocus

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

>
<EditText android:id="@+id/edit_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello Android!!"
android:hint="Filling in it!!"
android:layout_weight="1"
android:selectAllOnFocus="true"
android:focusable="true"
android:focusableInTouchMode="true"
><requestFocus/></EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go!" 

/>
</LinearLayout>
Lazy Ninja
  • 22,342
  • 9
  • 83
  • 103