Android:创建常见对话框以及使用对话框实现登陆1、首先说一下“提示”——Toast所谓的“提示”就是一种简易的消息
Android:创建常见对话框以及使用对话框实现登陆
1、 首先说一下“提示”——Toast
所谓的“提示”就是一种简易的消息提示框,不能被用户单击,根据代码中时间参数的设置,自动消失。
Toast的创建
方法一:makeText (Context context, int resId, int duration)
方法二:makeText(Context context, CharSequence text, int duration)
参数:
第一个参数context表示:toast显示在哪个上下文,通常是当前Activity。
第三个参数duration表示:toast显示的时间。Toast默认有LENGTH_SHORT和LENGTH_LONG两常量,分别表示短时间显示和长时间显示。也可以自己设定时间,注意它的时间单位是:毫秒
对于第二个参数可以是字符串也可以是从资源文件string.xml 里面取得的提示信息 。
package com.example.testofdialog;import java.lang.reflect.Field;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);showWaiterAuthorizationDialog();}// 显示对话框public void showWaiterAuthorizationDialog() {// LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化LayoutInflater factory = LayoutInflater.from(LoginActivity.this);// 把activity_login中的控件定义在View中final View textEntryView = factory.inflate(R.layout.activity_login,null);// 将LoginActivity中的控件显示在对话框中new AlertDialog.Builder(LoginActivity.this)// 对话框的标题.setTitle("登陆")// 设定显示的View.setView(textEntryView)// 对话框中的“登陆”按钮的点击事件.setPositiveButton("登陆", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton) {// 获取用户输入的“用户名”,“密码”// 注意:textEntryView.findViewById很重要,因为上面factory.inflate(R.layout.activity_login,// null)将页面布局赋值给了textEntryView了final EditText etUserName = (EditText) textEntryView.findViewById(R.id.etuserName);final EditText etPassword = (EditText) textEntryView.findViewById(R.id.etPWD);// 将页面输入框中获得的“用户名”,“密码”转为字符串String userName = etUserName.getText().toString().trim();String password = etPassword.getText().toString().trim();// 现在为止已经获得了字符型的用户名和密码了,接下来就是根据自己的需求来编写代码了// 这里做一个简单的测试,假定输入的用户名和密码都是1则进入其他操作页面(OperationActivity)if (userName.equals("1") && password.equals("1")) {// 跳转到OperationActivityIntent intent = new Intent();intent.setClass(LoginActivity.this,OperationActivity.class);startActivity(intent);// 关闭当前页面LoginActivity.this.finish();} else {Toast.makeText(LoginActivity.this, "密码或用户名错误",Toast.LENGTH_SHORT).show();try {// 注意此处是通过反射,修改源代码类中的字段mShowing为true,系统会认为对话框打开// 从而调用dismiss()Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");field.setAccessible(true);field.set(dialog, false);dialog.dismiss();} catch (Exception e) {}}}})// 对话框的“退出”单击事件.setNegativeButton("退出", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton) {LoginActivity.this.finish();}})// 设置dialog是否为模态,false表示模态,true表示非模态.setCancelable(false)// 对话框的创建、显示.create().show();}}- 4楼wwwwenhuan前天 17:32
- 先收藏了,以后学习
- Re: aboy123昨天 14:10
- 回复wwwwenhuann以后自己就懂了
- 3楼jianxin1009前天 17:24
- 学习了~~
- Re: aboy123前天 17:24
- 回复jianxin1009n拜师
- 2楼tcl_6666前天 16:26
- 先行者
- 1楼liu765023051前天 15:05
- 看不懂呀。。,
