丰富多彩的Dialog之AlertDialog.Builder

来源:互联网 发布:中国广电网络最新消息 编辑:程序博客网 时间:2024/05/16 11:44
import java.util.Calendar;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.content.DialogInterface;import android.content.DialogInterface.OnMultiChoiceClickListener;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.DatePicker;import android.widget.Toast;public class DialogActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_dialog);//效果overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);loginDialog(); //登录框itemDialog(); //选项框mutilDialog(); //多选框dateDialog(); //日期框sexDialog(); //性别选择框}//loginprivate void loginDialog(){Button loginBtn=(Button)findViewById(R.id.loginDialog);  loginBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Builder builder=new AlertDialog.Builder(DialogActivity.this);builder.setIcon(R.drawable.add);builder.setTitle("奋斗吧");//加载layout,也可以用findViewByIdLayoutInflater inflater = LayoutInflater.from(DialogActivity.this);    View loginview=inflater.inflate(R.layout.login, null);    builder.setView(loginview);builder.setPositiveButton("开始", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});builder.setNegativeButton("放弃", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) { //关闭dialog.dismiss();}});//显示对话框builder.show();}  });}  //itemprivate void itemDialog(){Button loginBtn=(Button)findViewById(R.id.itemDialog);//选项被单击的时候  loginBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Builder builder=new AlertDialog.Builder(DialogActivity.this);   final String stulist[]=getResources().getStringArray(R.array.stulist);builder.setTitle("奋斗吧"); builder.setItems(stulist , new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "你选中了"+stulist[which], Toast.LENGTH_SHORT).show();}});//显示对话框builder.show();}  });} //多选框private void mutilDialog(){  Button loginBtn=(Button)findViewById(R.id.mutilDialog);  loginBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Builder builder=new AlertDialog.Builder(DialogActivity.this);    final String stulist[]=getResources().getStringArray(R.array.stulist); //资源数组    final boolean []checkedItems=new boolean[stulist.length]; //选中状态    for (int i = 0; i < stulist.length; i++) {    checkedItems[i]=false; //默认全部不选}builder.setTitle("奋斗吧"); builder.setMultiChoiceItems(stulist, checkedItems, new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checkedItems[which]=isChecked;  //记录点击的那个的状态}});builder.setPositiveButton("开始", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {StringBuffer items=new StringBuffer();for (int i = 0; i < checkedItems.length; i++) {if(checkedItems[i]){items.append(stulist[i]);}}Toast t=Toast.makeText(getApplicationContext(), "你选中了"+items, Toast.LENGTH_SHORT);t.setGravity(Gravity.BOTTOM | Gravity.CENTER, 0, 100);t.setMargin(0.0f, 0.0f);t.show();}});//显示对话框builder.show();}  });}//日期框private void dateDialog(){Button dateDialogButton = (Button) findViewById(R.id.dateDialog);dateDialogButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {Calendar calendar = Calendar.getInstance();DatePickerDialog datePicker = new DatePickerDialog(DialogActivity.this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker date, int y,int m, int d) {String sd = y + "年" + (m+1) + "月" + d + "日";Toast.makeText(getApplicationContext(),"你选择的日期是:" + sd, Toast.LENGTH_SHORT).show();}}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));//显示datePicker.show();}});}//单选框private void sexDialog(){Button sexBtn = (Button) findViewById(R.id.sexDialog);sexBtn.setOnClickListener(new OnClickListener() {int selectIndex=0;@Overridepublic void onClick(View view) {final String[] sexs = new String[] {"男","女"};Builder builder = new AlertDialog.Builder(DialogActivity.this);builder.setTitle("选择性别");builder.setSingleChoiceItems(sexs, 1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int position) {selectIndex = position;}});builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int position) {Toast.makeText(getApplicationContext(),"你选择了" + sexs[selectIndex],Toast.LENGTH_SHORT).show();}});builder.show();}});}}

自定义的登录布局 : login.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"    android:id="@+id/loginLayout">    <LinearLayout android:layout_width="match_parent"         android:layout_height="wrap_content"         android:orientation="horizontal">        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"        android:text="用户名"         />    <EditText android:layout_width="match_parent" android:layout_height="wrap_content"/>    </LinearLayout>      <LinearLayout android:layout_width="match_parent"         android:layout_height="wrap_content"         android:orientation="horizontal">        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"        android:text="密码"         />    <EditText android:layout_width="match_parent" android:layout_height="wrap_content"/>    </LinearLayout></LinearLayout>

选项的资源文件:

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="stulist">        <item>黄晓明</item>        <item>朱莉</item>        <item>李菲菲</item>        <item>李小名</item>        <item>李雪</item>    </string-array></resources>

总的配置文件:activity_dialog.xml

<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:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".DialogActivity"    android:orientation="vertical" >       <Button android:id="@+id/loginDialog"  style="@style/btnStyle" android:text="logindialog" />   <Button android:id="@+id/itemDialog"  style="@style/btnStyle" android:text="itemdialog" />   <Button android:id="@+id/mutilDialog"  style="@style/btnStyle" android:text="mutildialog" />   <Button android:id="@+id/dateDialog"  style="@style/btnStyle" android:text="datedialog" />   <Button android:id="@+id/sexDialog"  style="@style/btnStyle" android:text="sexdialog" />       </LinearLayout>



0 0
原创粉丝点击