我自定义了一个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>java方法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;
}
});
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>java方法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;
}
});
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货