自定义Dialog含有Editte自动弹出软键盘

来源:互联网 发布:js重置form表单 编辑:程序博客网 时间:2024/06/05 18:11

在自定义的Dialog中有的含有EditText组件,需要在dialog显示的时候使EditText获取焦点,并且显示软件盘。

上代码:

public class AlertDialog extends Dialog implements        View.OnClickListener {    private Context context;    private CallBackListener listener;    public AlertDialog(Context context, int theme, CallBackListener listener) {        super(context, theme);   //传入主题,隐藏默认背景        // TODO Auto-generated constructor stub       this.context = context;        this.listener = listener;    }    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);   //不适用Dialog的Title        init();    }    public void init() {        LayoutInflater inflater = LayoutInflater.from(context);        View view = inflater.inflate(R.layout.activity_buy_bag, null);        setContentView(view);        view.findViewById(R.id.dialog_ok).setOnClickListener(this);           view.findViewById(R.id.dialog_cancel).setOnClickListener(this);               view.findViewById(R.id.buy_bag_imageView4).setOnClickListener(this);        view.findViewById(R.id.buy_bag_imageView5).setOnClickListener(this);        Window dialogWindow = getWindow();        WindowManager.LayoutParams lp = dialogWindow.getAttributes();        DisplayMetrics d = context.getResources().getDisplayMetrics();        lp.width = (int) (d.widthPixels * 0.8); //        dialogWindow.setAttributes(lp);        //设置为手机宽度的0.8        setOnShowListener(new OnShowListener() {            public void onShow(DialogInterface dialog) {                InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);                imm.showSoftInput(edt, InputMethodManager.SHOW_IMPLICIT);            }        });    }    @Override    public void onClick(View arg0) {        switch (arg0.getId()) {            case R.id.dialog_ok:
      listener.getSingleEdtNum(X x,X x ....);  //接口回调
dismiss();  
break;           
           case R.id.dialog_cancel:              
                dismiss();             
                break;            
          case R.id.buy_bag_imageView5:   //“加操作”               
                break;            
          case R.id.buy_bag_imageView4:  //“减操作”             
                break;        
           }   
        }   
      public interface CallBackListener {       
      public void getSingleEdtNum(X x, X,x.....);  //activity实现接口    }}


布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/pay_pwd_dialog_cancle">    <RelativeLayout        android:id="@+id/rl_dialog_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:background="#22929393"        android:paddingBottom="20dp">        <TextView            android:id="@+id/dialog_title"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="20dp"            android:gravity="center"            android:text="修改购买数量"            android:textColor="@color/gray"            android:textSize="20sp" />        <LinearLayout            android:id="@+id/alertDialog_edt"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_below="@id/dialog_title"            android:layout_centerHorizontal="true"            android:layout_marginTop="20dp"            android:background="@drawable/buttonstyle_buy_bag_data_corner"            android:orientation="horizontal">            <LinearLayout                android:id="@+id/buy_bag_imageView4"                android:layout_width="50dp"                android:layout_height="50dp"                android:background="@drawable/buttonstyle_buy_bag_data_corner">                <ImageView                    android:layout_width="25dp"                    android:layout_height="15dp"                    android:layout_gravity="center_vertical"                    android:layout_marginLeft="10dp"                    android:background="@drawable/buy_plus" />            </LinearLayout>            <EditText                android:id="@+id/dialog_edt"                android:layout_width="50dp"                android:layout_height="45dp"                android:layout_marginTop="2dp"                android:background="@null"                android:gravity="center"                android:maxLength="2"                android:text="1"                android:inputType="number"                android:textSize="@dimen/textsize_14" />            <LinearLayout                android:id="@+id/buy_bag_imageView5"                android:layout_width="50dp"                android:layout_height="50dp"                android:background="@drawable/buttonstyle_buy_bag_data_corner">                <ImageView                    android:layout_width="25dp"                    android:layout_height="25dp"                    android:layout_gravity="center_vertical"                    android:layout_marginLeft="10dp"                    android:background="@drawable/buy_add" />            </LinearLayout>        </LinearLayout>        <View            android:layout_below="@id/alertDialog_edt"            android:layout_marginTop="20dp"            android:id="@+id/alertLine"            android:layout_width="match_parent"            android:layout_height="0.2dp"            android:layout_marginLeft="20dp"            android:layout_marginRight="20dp"            android:background="#aaa"></View>        <LinearLayout            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_below="@id/alertLine"            android:layout_marginTop="20dp"            android:gravity="center"            android:orientation="horizontal"            android:paddingLeft="20dp"            android:paddingRight="20dp">            <Button                android:id="@+id/dialog_ok"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:background="@drawable/pay_pwd_dialog_sure1"                android:text="确定"                android:textColor="@color/white" />            <View                android:layout_width="20dp"                android:layout_height="10dp"></View>            <Button                android:id="@+id/dialog_cancel"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginLeft="5dp"                android:layout_weight="1"                android:background="@drawable/pay_pwd_dialog_cancle"                android:text="取消"                 />        </LinearLayout>    </RelativeLayout></RelativeLayout>

0 0