Android自定义对话框的简单实现

本文实例为大家分享了Android自定义对话框的具体实现代码,供大家参考,具体内容如下
1、定义对话框的布局


【Android自定义对话框的简单实现】对话框样式(比较丑哈,就是大概这个意思,嘿嘿)
Android自定义对话框的简单实现
文章图片

2、定义接口
利用接口回调的方式使对话框消失。
public interface DialogListener {void onClick(MyDialog dialog,View view); }

3、写一个类继承Dialog,并重写构造方法
说明:第三个按钮的监听与其他两个不同,前两个使用的是button原声的监听事件,第三个为自定义的接口,目的是获取MyDialog,然后通过dismiss()方法使对话框不显示。(接口回调的方式)
public class MyDialog extends Dialog {private TextView mTipOneView; private TextView mTipTwoView; private TextView mTitleView; private Button mOkView; private Button mCancelView; private Button mKonwView; private View.OnClickListener mOkListener; private View.OnClickListener mCancelListener; private DialogListener mKnowListener; private String title; private String oneTip; private String twoTip; private void setOnDialogListener(DialogListener listener){this.mKnowListener = listener; }public MyDialog(Context context) {super(context); }public MyDialog(Context context,String title,String oneTip,String twoTip,View.OnClickListener ok,View.OnClickListener cancel,DialogListener know) {this(context); this.title = title; this.oneTip = oneTip; this.twoTip = twoTip; mOkListener = ok; mCancelListener = cancel; mKnowListener = know; }@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.layout_dialog); mCancelView = (Button) findViewById(R.id.cancel); mOkView = (Button) findViewById(R.id.ok); mKonwView = (Button) findViewById(R.id.know); mTipOneView = (TextView) findViewById(R.id.content1); mTipTwoView = (TextView) findViewById(R.id.content2); mTitleView = (TextView) findViewById(R.id.title); mTitleView.setText(title); mTipTwoView.setText(twoTip); mTipOneView.setText(oneTip); mCancelView.setOnClickListener(mCancelListener); mOkView.setOnClickListener(mOkListener); mKonwView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {mKnowListener.onClick(MyDialog.this,view); }}); }}

通过setViewContent(R.layout.~)为对话框设置样式;使用构造方法传值。
4、显示对话框
public class CustomDialogActivity extends AppCompatActivity {private DialogListener listener; private MyDialog myDialog; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom_dialog); listener = new DialogListener() {@Overridepublic void onClick(MyDialog dialog, View view) {myDialog.dismiss(); }}; }public void showDialog(View view){myDialog = new MyDialog(CustomDialogActivity.this, "不知道", "有问题么", "啥问题", new View.OnClickListener() {@Overridepublic void onClick(View view) {Log.e("----->", "ok"); //点击按钮发生的事件}}, new View.OnClickListener() {@Overridepublic void onClick(View view) {Log.e("----->", "cancle"); //点击按钮发生的事件}},listener); myDialog.show(); }}

注意:一定不要忘了show(),否则对话框不显示。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读