自定义Dialog

来源:互联网 发布:电竞椅推荐 知乎 编辑:程序博客网 时间:2024/05/29 18:55

很多时候,我们在使用android sdk提供的alerdialog的时候,会因为你的系统的不同而产生不同的效果,这里简单的介绍自定义弹出框的应用。
首先是自定义的dialog布局,这里我接不写了,做自己需要的布局
其次创建Dialog类继承Dialog:

import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;/*** 自定义dialog* @author Mr.Xu**/public class MyCustomDialog extends Dialog {        //定义回调事件,用于dialog的点击事件        public interface OnCustomDialogListener{                public void back(String name);        }        private String name;        private OnCustomDialogListener customDialogListener;        EditText etName;        public MyCustomDialog(Context context,String name,OnCustomDialogListener customDialogListener) {                super(context);                this.name = name;                this.customDialogListener = customDialogListener;        }        @Override        protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.dialog);                //设置标题                setTitle(name);                etName = (EditText)findViewById(R.id.edit);                Button clickBtn = (Button) findViewById(R.id.clickbtn);                clickBtn.setOnClickListener(clickListener);        }        private View.OnClickListener clickListener = new View.OnClickListener() {                @Override                public void onClick(View v) {                        customDialogListener.back(String.valueOf(etName.getText()));                    MyCustomDialog.this.dismiss();                }        };}

最后再完成MainActivity:

import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {     private TextView resultText;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        resultText = (TextView) findViewById(R.id.result);        Button showDialogBtn = (Button) findViewById(R.id.showdialog);        showDialogBtn.setOnClickListener(this);    }        @Override        public void onClick(View v) {                  MyCustomDialog dialog = new MyCustomDialog(this,"Enter your name",new MyCustomDialog.OnCustomDialogListener() {                                @Override                                public void back(String name) {                                        resultText.setText("Enter name is "+name);                                }                        });                        dialog.show();    }}

这样就搞定了

0 0
原创粉丝点击