Android输入法键盘弹出问题
我自定义了一个alertDialog,带背景图的,可是总是不能弹出软键盘
dialog.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="312dip" android:layout_height="208dip" android:orientation="vertical" android:background="@drawable/login_bg" android:paddingLeft="20dip" > <ImageButton android:id="@+id/login_close_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dlg_close_btn" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_marginTop="5dip" android:layout_marginRight="4dip" /> <TextView android:id="@+id/login_tip_text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/login_tip" /> <ImageView android:id="@+id/login_imageView1" android:layout_width="250dip" android:layout_height="1dip" android:background="#a1a19f" android:layout_below="@id/login_tip_text1" android:layout_marginTop="5dip" /> <LinearLayout android:id="@+id/login_linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_below="@id/login_imageView1" android:layout_marginTop="15dip" android:layout_centerHorizontal="true" > <TextView android:id="@+id/login_username_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/username" /> <EditText android:id="@+id/login_username_et" android:layout_width="150dip" android:layout_height="35dip" android:textSize="15dip" /> </LinearLayout> <LinearLayout android:id="@+id/login_linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_below="@id/login_linearLayout1" android:layout_marginTop="15dip" android:layout_centerHorizontal="true" > <TextView android:id="@+id/login_psw_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/password" /> <EditText android:id="@+id/login_psw_et" android:layout_width="150dip" android:layout_height="35dip" android:textSize="15dip" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/login_linearLayout2" android:orientation="horizontal" android:layout_centerHorizontal="true" android:layout_marginTop="20dip" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dip" > <ImageView android:id="@+id/login_btn_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dlg_btn_bg" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/login_btn" android:layout_centerInParent="true" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dip" > <ImageView android:id="@+id/register_btn_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dlg_btn_bg" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/register_btn" android:layout_centerInParent="true" /> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/find_psw" /> </LinearLayout></RelativeLayout>
final AlertDialog dlg = new AlertDialog.Builder(context).create(); dlg.show(); Window window = dlg.getWindow(); // *** 主要就是在这里实现这种效果的. // 设置窗口的内容页面,shrew_exit_dialog.xml文件中定义view内容 window.setContentView(R.layout.login_dlg); usernameText = (EditText) window.findViewById(R.id.login_username_et); usernameText.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { InputMethodManager m = (InputMethodManager)usernameText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_FORCED); return false; } });