AlertDialog(自定义对话框)示例

来源:互联网 发布:香蕉tv网络电视下载 编辑:程序博客网 时间:2024/04/27 14:46

一、定义一个与系统对话框不同的布局,然后调用setView()将布局inflater到alertDialog上:

二、效果图:


三、帖代码:

MainActivity

package com.Evan.demo_alertdialog;import android.app.Activity;import android.app.AlertDialog;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button;private AlertDialog alert=null;private AlertDialog.Builder builder=null;private View view;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=(Button) findViewById(R.id.button1);builder=new AlertDialog.Builder(MainActivity.this);//加载自定义的Viewfinal LayoutInflater inflater=MainActivity.this.getLayoutInflater();view=inflater.inflate(R.layout.view_dialog_custom, null,false);    builder.setView(view);builder.setCancelable(false);    alert=builder.create();    view.findViewById(R.id.btn_close).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {alert.dismiss();}});    view.findViewById(R.id.btn_blog).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this,MyActivity.class);startActivity(intent);alert.dismiss();}});    view.findViewById(R.id.btn_cancle).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {alert.dismiss();}});    button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {alert.show();}});}}
Myactivity:

package com.Evan.demo_alertdialog;import android.app.Activity;import android.os.Bundle;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;public class MyActivity extends Activity {private static long ExitTime = 0;private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);webView=new WebView(this);webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});webView.getSettings().setJavaScriptEnabled(true);//设置webView属性,运行JS脚本webView.loadUrl("http://blog.csdn.net/xiangyong_1521");//连接setContentView(webView);//显示}/* * 我们需要重写回退按钮的事件,当用户点击回退按钮判断 * 1、webView.canGoBack()判断网页是否能后退,可以则goback() * 2、如果不可以,点击两次退出APP,弹出提示Toast */@Overridepublic void onBackPressed() {if(webView.canGoBack()){webView.goBack();}else{if(System.currentTimeMillis()-ExitTime>2000){Toast.makeText(getApplicationContext(), "再按一次退出我的微博", 0).show();ExitTime=System.currentTimeMillis();}else{super.onBackPressed();}}}}
view_dialog_custom.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/RelativeLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <LinearLayout        android:id="@+id/titlelayout"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:orientation="horizontal"        android:background="@drawable/y3"        android:padding="5dp" >                 <ImageView            android:id="@+id/imageView1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignLeft="@+id/textView1"            android:layout_centerVertical="true"            android:src="@drawable/aa4" />        <TextView            android:id="@+id/textView1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerVertical="true"            android:text="提示"            android:layout_marginTop="5dp"            android:textColor="#ffffff"            android:textSize="18sp"            android:layout_marginLeft="10dp"            android:textStyle="bold" />        <Button            android:id="@+id/btn_cancle"            android:layout_width="30dp"            android:layout_height="30dp"            android:layout_marginTop="5dp"            android:layout_marginLeft="198dp"            android:background="@drawable/btn_selctor_exit" />           </LinearLayout>    <LinearLayout        android:id="@+id/ly_detail"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_below="@+id/titlelayout"        android:layout_centerInParent="true"        android:orientation="vertical">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="10dp"            android:layout_marginTop="20dp"            android:textSize="16sp"            android:text="是否进入我的微博?"             />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/ly_detail"        android:layout_marginTop="10dp"        android:orientation="horizontal">        <Button            android:id="@+id/btn_blog"            android:layout_width="match_parent"            android:layout_height="40dp"            android:layout_margin="5dp"            android:layout_weight="1"            android:background="@drawable/btn_selctor_choose"            android:clickable="true"            android:text="访问博客"            android:textColor="#ffffff"            android:textSize="16sp" />        <Button            android:id="@+id/btn_close"            android:layout_width="match_parent"            android:layout_height="40dp"            android:layout_margin="5dp"            android:layout_weight="1"            android:background="@drawable/btn_selctor_choose"            android:text="关闭"            android:textColor="#ffffff"            android:textSize="16sp" />    </LinearLayout></RelativeLayout>  


btn_selctor_choose.xml:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/y4"  android:state_pressed="true"/>    <item android:drawable="@drawable/y3" /></selector>
btn_selctor_exit.xml:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/vy" android:state_pressed="true"/>    <item android:drawable="@drawable/vx"/></selector>


0 0