丰富多彩的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
- 丰富多彩的Dialog之AlertDialog.Builder
- Android弹出框PopupWindow,Dialog,AlertDialog.Builder,AlertDialog的一知半解
- AlertDialog.Builder和Dialog分析
- AlertDialog.Builder的使用
- AlertDialog.Builder的setCancelable
- Android 边用边学 之 AlertDialog.Builder
- Android之AlertDialog.Builder详解
- AlertDialog.Builder和AlertDialog之间的关系
- Android之AlertDialog和Dialog
- Dialog对话框之自定义AlertDialog
- Android之AlertDialog和Dialog
- android对话框之AlertDialog.Builder类的setSingleChoiceItems
- Android之使用AlertDialog类和AlertDialog.Builder类创建带取消,确定,中立的对话框
- AlertDialog.Builder()的参数问题
- 关于AlertDialog.Builder的自定义
- Android 使用AlertDialog.Builder构造对话框dialog全过程
- AlertDialog.Builder setPositiveButton 点击时不关闭dialog
- AlertDialog.Builder
- 要敢尝试,敢迈出第一步
- Leetcode 线性表 Remove Duplicates from Sorted List
- 嵌入式linux根文件系统制作参考资料
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 还有warning C4996
- 终于听了某人的建议,来开个博客。
- 丰富多彩的Dialog之AlertDialog.Builder
- 学习和管理oracle角色
- c++primer第十章课后编程题
- 盖楼挣话费 根本停不下来
- 政协委员倡建“民间资本投资服务中心”
- 百度地图 密钥申请
- C盘如何清理
- 原来windows里记事本的ansi编码就是GB2312啊,跟utf-8,unicode是不一样的。
- Bash 终端快捷操作总结