android dialog 详解,详解android dialog自定义实例

现在很多应用程序的提示对话框都很有个性的,如果你使用的对话框样子还是传统的对话框,是不是有点LOST了呢?今天爱站技术频道小编就给大家讲讲详解android dialog自定义实例。

第一个需求:简单的自定义dialog

需求:创建一个dialog,该dialog具备以下功能:

1.有一个窗口可以显示文章

2.根据需求显示

1)点击同意(不同意),触发对应的事件(同意的事件会弹出一个Toast,不同意则会关闭程序)

2)点击关闭,关闭dialog

1.在main.xml文件中设定一个按钮,点击会弹出dialog

复制代码 代码如下:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:layout_width="100dp"

android:layout_height="50dp"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:text="@string/hello_world"

android:id="@+id/btn"

android:background="@drawable/sl_btn_red" />

2.创建dialog的内容布局,布局中设定了使用相对布局设定了三个按钮,其中两个一起出现(同意和不同意),另外一个单独出现(关闭)默认是两个出现

复制代码 代码如下:

private TextView btnClose = null;

private TextView btnAgree = null;

private TextView btnDisagree = null;

private WebView mWebView = null;

public MyDialog(Context context) {

super(context, R.style.item_tnc_dialog);

setCancelable(false); // 阻止返回键的响应

setContentView(R.layout.dialog_view);

getWindow().setLayout(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

setUpView();

}

private void setUpView() {

mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);

btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);

btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);

btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);

btnClose.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

dismiss();

}

});

btnDisagree.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

System.exit(0);

}

});

btnAgree.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getContext(), "YOU SELECTED AGREE",

Toast.LENGTH_SHORT).show();

dismiss();

}

});

showDialog();

}

/** 加载webview的内容 */

public void showDialog() {

String localHtml = "file:///android_asset/los.html";

if (mWebView != null) {

mWebView.getSettings().setDefaultTextEncodingName("utf-8");

mWebView.loadUrl(localHtml);

}

buttonsDisplayTwo(false);

}

/** 当true的时候,出现同意和不同意两个选项,反之是关闭选项 */

private void buttonsDisplayTwo(boolean two) {

btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);

btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);

btnClose.setVisibility(two ? View.GONE : View.VISIBLE);

}

3.main.activity的代码就不写了。。直接写自定义的dialog代码

复制代码 代码如下:

private TextView btnClose = null;

private TextView btnAgree = null;

private TextView btnDisagree = null;

private WebView mWebView = null;

public MyDialog(Context context) {

super(context, R.style.item_tnc_dialog);

setCancelable(false); // 阻止返回键的响应

setContentView(R.layout.dialog_view);

getWindow().setLayout(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

setUpView();

}

private void setUpView() {

mWebView = (WebView) findViewById(R.id.item_tnc_dialog_webview);

btnClose = (TextView) findViewById(R.id.item_tnc_dialog_close);

btnAgree = (TextView) findViewById(R.id.item_tnc_dialog_agree);

btnDisagree = (TextView) findViewById(R.id.item_tnc_dialog_disagree);

btnClose.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

dismiss();

}

});

btnDisagree.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

System.exit(0);

}

});

btnAgree.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getContext(), "YOU SELECTED AGREE",

Toast.LENGTH_SHORT).show();

dismiss();

}

});

showDialog();

}

/** 加载webview的内容 */

public void showDialog() {

String localHtml = "file:///android_asset/los.html";

if (mWebView != null) {

mWebView.getSettings().setDefaultTextEncodingName("utf-8");

mWebView.loadUrl(localHtml);

}

buttonsDisplayTwo(false);

}

/** 当true的时候,出现同意和不同意两个选项,反之是关闭选项 */

private void buttonsDisplayTwo(boolean two) {

btnAgree.setVisibility(two ? View.VISIBLE : View.GONE);

btnDisagree.setVisibility(two ? View.VISIBLE : View.GONE);

btnClose.setVisibility(two ? View.GONE : View.VISIBLE);

}

以上就是详解android dialog自定义实例的介绍,更多内容请继续关注爱站技术频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值