Android 自定义Dialog的多种样式

来源:互联网 发布:小米盒子 端口转发 编辑:程序博客网 时间:2024/06/06 01:14

MainActivity

package cn.bgs.alldialog;


import java.util.Calendar;


import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;


public class MainActivity extends Activity implements OnClickListener, android.content.DialogInterface.OnClickListener {
private Button mBtn_alert,mBtn_zdy,mBtn_time,mBtn_date,mBtn_jump;
private AlertDialog dialog;
private MyDialog my;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mBtn_alert=(Button) findViewById(R.id.mBtn_alert);
mBtn_zdy=(Button) findViewById(R.id.mBtn_zdy);
mBtn_time=(Button) findViewById(R.id.mBtn_time);
mBtn_date=(Button) findViewById(R.id.mBtn_date);
mBtn_jump=(Button) findViewById(R.id.mBtn_jump);

mBtn_alert.setOnClickListener(this);
mBtn_zdy.setOnClickListener(this);
mBtn_time.setOnClickListener(this);
mBtn_date.setOnClickListener(this);
mBtn_jump.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id=v.getId();
switch (id) {
case R.id.mBtn_alert:
AlertDialog.Builder alert=new AlertDialog.Builder(MainActivity.this);
alert.setTitle("退出");
alert.setMessage("确定退出此程序?");
alert.setPositiveButton("退出", this);
alert.setNegativeButton("取消", this);
dialog=alert.create();
dialog.show();
break;
case R.id.mBtn_zdy:
my=new MyDialog(this);
my.addActivity(this);
my.show();
break;
case R.id.mBtn_time:
long time=System.currentTimeMillis();
Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(time);
TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {


@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, ""+hourOfDay+"时"+minute+"分", 0).show();
}
}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);
timePickerDialog.show();
break;
case R.id.mBtn_date:
long time1=System.currentTimeMillis();
Calendar calendar2=Calendar.getInstance();
calendar2.setTimeInMillis(time1);
DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Toast.makeText(MainActivity.this, year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日", 0).show();
}
}, calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
break;
case R.id.mBtn_jump:
Intent intent=new Intent(MainActivity.this, MainActivity_b.class);
startActivity(intent);
break;
default:
break;
}
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (which==-1) {
finish();
}
 
}
}


MainActivity_b.class

package cn.bgs.alldialog;


import android.app.Activity;
import android.os.Bundle;


public class MainActivity_b extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
}
}


 MyDialog.class

package cn.bgs.alldialog;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MyDialog extends AlertDialog implements android.view.View.OnClickListener {
private Button mBtn_no,mBtn_yes;
private Activity activity;
protected MyDialog(Context context) {
super(context);
setCanceledOnTouchOutside(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_zdy);
mBtn_yes=(Button) findViewById(R.id.mBtn_yes);
mBtn_no=(Button) findViewById(R.id.mBtn_no);

mBtn_yes.setOnClickListener(this);
mBtn_no.setOnClickListener(this);
}
public void addActivity(Activity act){
this.activity=act;
}
@Override
public void onClick(View v) {
int id=v.getId();
switch (id) {
case R.id.mBtn_yes:
dismiss();
activity.finish();
break;
case R.id.mBtn_no:
dismiss();
break;
default:
break;
}
}
}

XML

activity_main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical">
<Button 
   android:id="@+id/mBtn_alert"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="退出"
   />
<Button 
   android:id="@+id/mBtn_zdy"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="自定义退出"
   />
<Button 
   android:id="@+id/mBtn_time"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="时间"
   />
<Button 
   android:id="@+id/mBtn_date"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="日期"
   />
<Button 
   android:id="@+id/mBtn_jump"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="跳转"
   />
</LinearLayout>


activity_b.XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
<ImageView 
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:src="@drawable/bkhm"
   />    
</LinearLayout>


dialog_zdy.XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout 
        android:layout_width="260dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        >


        <ImageView
            android:id="@+id/mImg"
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:scaleType="fitXY"
            android:src="@drawable/bg"
            />
<Button
   android:id="@+id/mBtn_no" 
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="取消"
   android:layout_alignParentBottom="true"
   android:layout_marginLeft="50dp"
   />
<Button
   android:id="@+id/mBtn_yes" 
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="确定"
   android:layout_alignParentBottom="true"
   android:layout_alignParentRight="true"
   android:layout_marginRight="50dp"
   />
    </RelativeLayout>


</LinearLayout>

原创粉丝点击