实践四 简单登录功能实现

实践四 简单登录功能实现


【实践目的】

通过实践掌握文本控件、文本输入控件、checkbox控件的应用。学习掌握线程、Handler和进度条的基本功能。

【实践要求】

  1. 编程实现登录界面;
  2. 编程实现页面切换;
  3. 编程实现进度条模拟数据加载过程。

【任务和要求】

  1. 如图实现登录界面布局,点击登录按钮,模拟验证用户名和密码,成功跳转新页面,同时提示登录成功,不成功提示登录不成功,同时在登录界面旁边显示注册按钮。

  1. 实现用户注册功能(类似登录界面)
  2. 实现进度条模拟数据加载过程

 

【实践过程】

  1. 实现登录界面布局
    1. 设计和编写界面脚本login.xml,其中注册按钮属性设置为“GONE”
    2. 声明按钮、编辑框控件,并在OnCreate中通过findeViewbyId赋予对象
    3. 绑定确定按钮的点击事件
    4. 并在点击事件中检查用户名和密码的值,检查成功,弹出登录成功信息,并跳转新页面;检查不成功,弹出登录不成功信息,并显示注册按钮。
  2. 实现用户注册
    1. 设计和编写注册界面register.xml
    2. 模拟实现用户注册功能,通过StartActivityForResult方式切换到注册界面,注册信息通过setResult,返回到登录界面。
  3. 实现进度条模拟数据加载过程
    1. 添加布局progress.xlm,用于显示进度条
    2. 添加主页面布局main.xml,模拟显示主页面,如上图。
    3. 编写进度条框,对话框的视图progress.xml布局,参考代码如下:
    4. 创建线程,使用sleep函数模拟资源加载,通过消息发送进度条数据。
 //private TextView cBoxStateTxt;
    int mProgressStatus=0;
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.progress);


        mProgress = (ProgressBar) findViewById(R.id.horizontal_pbar);
        //设置监听按钮
        //startpbarbtn = (Button)findViewById(R.id.start_pbar_btn);
        //设置监视内容
        //监听
        new Thread(new Runnable() {
            public void run() {
                //推荐使用标志位使其不执行代码,不推荐使用true
                while (FLAG) {
                    mProgressStatus = addNum();
                    // 更新进度条
                    // post方法推送一个Runnable到Handler,可以在此更新UI
                    mHandler.post(new Runnable() {
                        public void run() {
                            if (mProgressStatus < 100) {
                                mProgress.setProgress(mProgressStatus);
                                mProgressStatus++;
                            }
                            //执行完成后隐藏进度条并将标志设置为false
                            else {
                                mProgress.setVisibility(View.INVISIBLE);
                                FLAG = false;

                                if(MainActivity.usenameEdtxt.getText().toString().equals(a)&&
                                        MainActivity.passwordEdtxt.getText().toString().equals(a)) {
                                    Toast toast = Toast.makeText(getApplicationContext(),
                                            "登录成功Usename:"+MainActivity.usenameEdtxt.getText().toString()+
                                                    "\nPassword:"+MainActivity.passwordEdtxt.getText().toString()+
                                                    "\ncheckbox状态:"+MainActivity.select,

                                            Toast.LENGTH_LONG);
                                    toast.setGravity(Gravity.CENTER, 0, 0);
                                    toast.show();
                                    Intent it=new Intent();
                                    Context packageContext;
                                    it.setClass(ProgressActivity.this, LoginActivity.class);
                                   ProgressActivity.this.startActivity(it);

                                }
                                else{
                                    Toast toast = Toast.makeText(getApplicationContext(),
                                            "登录失败Usename:"+MainActivity.usenameEdtxt.getText().toString()+
                                                    "\nPassword:"+MainActivity.passwordEdtxt.getText().toString()+
                                                    "\ncheckbox状态:"+MainActivity.select,
                                            Toast.LENGTH_LONG);
                                    toast.setGravity(Gravity.CENTER, 0, 0);
                                    toast.show();
                                    Intent it=new Intent();
                                    Context packageContext;
                                    it.setClass(ProgressActivity.this, Activity.class);
                                    ProgressActivity.this.startActivity(it);

                                }

                                finish();
                            }

                        }

                    });
                }

            }

            private int addNum() {

                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return mProgressStatus;
            }

        }).start();



        //cBoxStateTxt.setText("CheckBox状态:    "+mainActivity.select);

    }
}
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainactivity);

        usenameEdtxt=(EditText)findViewById(R.id.usename_edtxt);
        passwordEdtxt=(EditText)findViewById(R.id.password_edtxt);
        savePasswordCheckBox=(CheckBox)findViewById(R.id.save_password_checkBox);
        submitButton=(Button)findViewById(R.id.submit_button);
        //登录按钮监控
        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String usename=usenameEdtxt.getText().toString();
                String password=passwordEdtxt.getText().toString();

                if(usename.isEmpty()){
                    usenameEdtxt.setError("用户名不能为空");
                    usenameEdtxt.requestFocus();
                    return;
                }
                if(password.isEmpty()){
                    passwordEdtxt.setError("密码不能为空");
                    passwordEdtxt.requestFocus();
                    return;
                }
                if(usename.length()>0&&password.length()>0){

                    Selectcheckbox=savePasswordCheckBox.isChecked();
                    if(Selectcheckbox)select="已勾选";
                    else select="未勾选";

                    Intent it=new Intent();
                    Context packageContext;
                    it.setClass(Activity.this, ProgressActivity.class);
                    Activity.this.startActivity(it);

                }

            }

        });


    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬鸡腿baiAries_0224

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值