您的位置:首页 > 移动开发 > Android开发

Android之对话框AlertDialog及其子类的使用(二)

2016-06-30 13:34 459 查看
效果图如下:



简单的写了个对话框的代码,以便以后复习,那样也方便

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"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本对话框"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="简单文本对话框"
android:onClick="myBtn2"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单选对话框"
android:onClick="myBtn3"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="多选对话框"
android:onClick="myBtn4"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="适配器对话框"
android:onClick="myBtn5"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自定义View对话框"
android:onClick="myBtn6"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="日期选择器对话框"
android:onClick="myBtn7"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间选择器对话框"
android:onClick="myBtn8"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进度条对话框"
android:onClick="myBtn9"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="popupWindow对话框"
android:onClick="myBtn10"
android:layout_gravity="center_horizontal"/>

</LinearLayout>


MainActivity:

package com.example.dialogapp;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends Activity {
private PopupWindow pw;
//popuWindow
public void myBtn10(View view){
//
//
if(pw!=null&&pw.isShowing()){
pw.dismiss();
}else{

ImageView iv=new ImageView(this);
iv.setImageResource(R.drawable.ic_launcher);
iv.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
if(pw!=null&&pw.isShowing())
pw.dismiss();
return false;
}
});
pw=new PopupWindow(iv,200,200);
//
pw.showAtLocation(view, Gravity.CENTER, 0, 0);
//		pw.showAsDropDown(view);

}

}

private int myear,mmonth,mday;
private int mhour,mminute;

public void myBtn9(View view){
/*
ProgressDialog dialog=ProgressDialog.show(this, "", "",true,false);
dialog.cancel();*/
//		dialog.dismiss();
//
ProgressDialog dialog=new ProgressDialog(this);
dialog.setTitle("进度条对话框");
dialog.setMessage("zhengzai...");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//		dialog.setIndeterminate(true);
dialog.show();
dialog.setProgress(50);
}

public void myBtn8(View view){
Calendar c=Calendar.getInstance();
mhour=c.get(Calendar.HOUR_OF_DAY);
mminute=c.get(Calendar.MINUTE);
TimePickerDialog dialog=new TimePickerDialog(this,
new OnTimeSetListener() {

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, "时间为:"+mhour+"分钟为:"+mminute, 0).show();

}
},
mhour, mminute, true);
dialog.show();
}

public void myBtn7(View view){
//用日历来设置时间
Calendar c=Calendar.getInstance();
myear=c.get(Calendar.YEAR);
mmonth=c.get(Calendar.MONTH);
mday=c.get(Calendar.DAY_OF_MONTH);

DatePickerDialog dialog=new DatePickerDialog(this, new OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Toast.makeText(MainActivity.this, "时间为:"+myear+"-"+(mmonth+1)+"-"+mday, 0).show();

}
},
myear, mmonth, mday);

dialog.show();
}

public void myBtn5(View v){
new AlertDialog.Builder(this)
.setTitle("适配器对话框");
}

public void myBtn6(View view){
View v=getLayoutInflater().inflate(R.layout.activity_myview, null);
new AlertDialog.Builder(this)
.setTitle("自定义View对话框")
.setView(v)
.create().show();
}

private int index;
private String[] msg={"红色","蓝色","黄色","绿色"};
private int[] colors={R.color.red,R.color.blue,R.color.yellow,R.color.green};

public void myBtn2(View v){
new AlertDialog.Builder(this)
.setTitle("简单文本对话框")
.setIcon(R.drawable.ic_launcher)
.setItems(msg, new OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

getWindow().setBackgroundDrawableResource(colors[which]);
}
})
.create().show();
}
public void myBtn3(View v){
new AlertDialog.Builder(this)
.setTitle("单选对话框")
.setIcon(R.drawable.ic_launcher)
.setSingleChoiceItems(msg, 1, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//getWindow().setBackgroundDrawableResource(R.color.blue);
index=which;
}
})
.setPositiveButton("确定", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

getWindow().setBackgroundDrawableResource(colors[index]);

}
})

.create().show();
}

public void myBtn4(View v){
new AlertDialog.Builder(this)
.setTitle("多选对话框")
.setIcon(R.drawable.ic_launcher)
.setMultiChoiceItems(msg, new boolean[]{false,false,false,false},
new OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){

}else{

}

}
})

.create().show();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}

}


自定义对话框的布局activity_myview:

<?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="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/a1"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="还能不能愉快的玩耍了"
android:textColor="#33cc33"
android:textSize="25sp"
android:layout_gravity="center_horizontal"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="能"
android:textSize="20sp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"
android:background="@drawable/btn_selector"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="不能"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:background="@drawable/btn_selector"/>
</RelativeLayout>

</LinearLayout>


点击打开链接可以下载代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对话框 布局 android