一、定義一個與系統對話框不同的布局,然後調用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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.button1);
builder=new AlertDialog.Builder(MainActivity.this);
//加載自定義的View
final 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() {
@Override
public void onClick(View v) {
alert.dismiss();
}
});
view.findViewById(R.id.btn_blog).setOnClickListener(new OnClickListener() {
@Override
public 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() {
@Override
public void onClick(View v) {
alert.dismiss();
}
});
button.setOnClickListener(new OnClickListener() {
@Override
public 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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView=new WebView(this);
webView.setWebViewClient(new WebViewClient(){
@Override
public 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
*/
@Override
public 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>