Android控件之AlertDialog-自定义对话框
2015-11-28 10:29
621 查看
1、自定义样式对话框
经过前两篇博客,使用的对话框的样式都是Android给我们提供的,只能在对话框里面放一些简单的信息,自定义样式的对话框成功解决了这个问题。顾名思义,这种对话框可以让我们自己定义对话框的内容、样式等,效果如下
2、xml代码
<RelativeLayout 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=".MainActivity" > <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button4" android:layout_alignParentRight="true" android:layout_below="@+id/button4" android:onClick="showCustomAlertDialog" android:text="自定义对话框" /> </RelativeLayout>弹出对话框的布局文件,我们可以在这个布局文件里面,对弹出的对话框进行样式、内容上的调整,对话框的布局文件user_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:padding="@dimen/activity_horizontal_margin" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:hint="请输入用户名" > </EditText> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" android:hint="请输入密码" > </EditText> </LinearLayout>
3、java代码如下
package com.example.alertdialog; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // 自定义提示框 public void showCustomAlertDialog(View view) { // new一个AlertDialog建造者 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle("用户登录"); // 设置布局 final View viewLayout = getLayoutInflater().inflate(R.layout.user_login, null); alertDialogBuilder.setView(viewLayout); // 设置正面按钮 alertDialogBuilder.setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { // 得到输入框 EditText editText_userName = (EditText) viewLayout.findViewById(R.id.editText1); EditText editText_password = (EditText) viewLayout.findViewById(R.id.editText2); String userName = editText_userName.getText().toString(); String password = editText_password.getText().toString(); Toast.makeText(MainActivity.this, "用户名:"+userName+" 密码:"+password, Toast.LENGTH_SHORT).show(); // 使用DialogInterface参数,关闭对话框 dialogInterface.dismiss(); } }); // 设置负面按钮 alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { dialogInterface.dismiss(); } }); alertDialogBuilder.show(); } }
相关文章推荐
- android log 学习
- Android控件之AlertDialog-单选、多选信息列表弹出框
- android:ToolBar详解(手把手教程)
- Android编程实现二维码的生成与解析
- Android NDK开发之JNI调用Java对象
- android移动view之后刷新布局导致移动后的view归回原位置2
- Android开发优化之——使用软引用和弱引用
- android移动view之后刷新布局导致移动后的view归回原位置1
- android项目MD5加密
- AndroidArticle
- Android编程实现一键锁屏的方法
- Android版本-20151119
- Android之ListView原理学习与优化总结
- Android 线程池来管理线程
- 对Android开发者有益的40条优化建议
- android 退出程序解决内存释放的问题
- Android Demo 下拉刷新+加载更多+滑动删除
- Android Demo 下拉刷新+加载更多+滑动删除
- 记录Android端百度地图API使用遇到的问题
- Android 防卸载实现代码。