移动应用程序设计基础

您所在的位置:网站首页 界面设计网页基础框架包括哪些内容 移动应用程序设计基础

移动应用程序设计基础

2023-06-06 10:34| 来源: 网络整理| 查看: 265

《移动应用程序设计基础》实 验 报 告(二)

实验名称:

用户登录实验

所使用的工具软件及环境:

 JDK1.8,Android Studio

 

一、实验目的:

本实验通过实现用户登录界面,使得学员能进一步加深和掌握Android的常用基本控件使用,包括:TextView,EditView、CheckBox、Button、ImageView以及ProgressBar等。 

二、实验内容: 构建登录界面布局login.xml,放置各类按钮,如下图;编写Activity代码LoginActivity.java,实现EditView的username、password和CheckBox的issaved控件发现取得;编写进度条ProgressBar的界面布局progress.xml,放置水平进度条,设置最大值属性为100;编写ProgressActivity.java代码,通过线程和Handler模拟实现ProgressBar的进度条的进度值变动,每100毫秒增加1;点击Submit按钮,页面跳转到进度条界面,进度条启动,当进度值达到最大(100)时,关闭进度条,并将用户名(username)信息返回登录页面,通过Toast弹出信息框提示登录成功或失败原因。提示:页面跳转可以使用startActivityForResult方法,返回结果可以覆写onActivityResult方法,设置返回值可以使用setResult方法。实验结果 三、源代码 //activity_main.xml     ]]>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   //MainActivity.java  package com.example.login; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; public class MainActivity extends AppCompatActivity {     static public EditText usenameEdtxt,passwordEdtxt;     static public CheckBox savePasswordCheckBox;     public Button submitButton;     public Boolean Selectcheckbox;     static public String select;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         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(MainActivity.this, ProgressActivity.class);                     MainActivity.this.startActivity(it);                 }             }         });     } } // progress.xml                                             // ProgressActivity.java package com.example.login; import android.os.Bundle; import android.os.Handler; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class ProgressActivity extends AppCompatActivity {     //MainActivity mainActivity=new MainActivity();     private ProgressBar mProgress;     private Handler mHandler = new Handler();     public String a="admin";     private Boolean FLAG=true;     private Button startpbarbtn;     //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();                                 }                                 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();                                 }                                 finish();                             }                         }                     });                 }             }             private int addNum() {                 try {                     Thread.sleep(100);                 } catch (InterruptedException e) {                     e.printStackTrace();                 }                 return mProgressStatus;             }         }).start();         //cBoxStateTxt.setText("CheckBox状态:    "+mainActivity.select);     } }

 

四、实验结果测试

此时输入设置好的username和password,勾选或不勾选save password,点击submit按钮会跳转到进度条界面,进度条满后会返回界面,出现登录成功还有输入的username和password且save password的勾选状态的小提示。同时如果输入错误的username和password会出现登录错误还有其他部分的小提示。

 

五、收获与体会

通过此次实验,使得更能进一步加深和掌握Android的常用基本控件使用,对基本控件有了基本的认识,而且对以前的知识有了进一步的复习与巩固,对今后android的app制作有了较大的进步与学习。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3