用户界面基础

Android系统的四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。

其中,活动算是一个程序的门面,活动通过onCreate()方法来对用户界面(UI)进行初始化。而用户界面的创建则分为静态和动态两种方式:

静态方式即以XML布局文件来定义用户界面,通过XML布局文件中的相关属性进行控制,我将使用这种方式来实现简单的登录界面。

动态方式是指通过Java代码来开发用户界面,动态地控制界面中的组件。我没有尝试过这种开发方式。

Android项目工程的结构:

Android项目工程结构

补充:

其中java文件夹下存储有主活动文件MainActivty.java。

layout文件夹下存储有布局文件activity_main.xml。

简单登录界面的实现

准备完成的功能:

界面包含两个编辑框,一个用于输入用户名;一个用于输入密码。

点击登录按钮,若用户名和密码均和点击登录按钮方法中定义的相同,则显示登录成功的提示框,若不同,则提示登录失败。

按照要求,实现两个输入框,这里我们就需要在XML文件中进行布局,使用EditText控件进行设置。

XML布局代码如下:

android:orientation="vertical"

android:layout_height="match_parent"

android:layout_width="match_parent">

android:id="@+id/edit_text"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="用户登录界面"

android:textAlignment="center"

android:textSize="24sp" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="用户名"

android:textAlignment="center"

android:textSize="24sp" />

android:id="@+id/username"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入您的用户名"/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="密码"

android:textAlignment="center"

android:textSize="24sp" />

android:id="@+id/password"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入您的密码"/>

android:orientation="vertical"

android:layout_height="match_parent"

android:layout_width="match_parent">

android:id="@+id/login"

android:layout_height="60dp"

android:layout_width="wrap_content"

android:text="登录"

android:layout_gravity="center"

android:textAlignment="center"

android:textSize="18sp" />

效果如下:

登录界面

补充:

LinearLayout代表当前布局方式为线性布局。

TextView为显示字符串的控件,例如界面上的“用户登录界面”、“用户名”、“密码”就是用TextView实现的。

Button为按钮控件,即为用户界面添加一个可供点击的按钮,并可在主活动中添加相应的方法实现点击按钮后要进行的操作。

接下来我们开始编写活动页面的代码,完成点击按钮后的匹配用户名和密码的操作。

为获取到的Button对象绑定一个监听器button.setOnClickListener()。

使用接口方式实现监听事件。

最后在onClick()方法中实现监听事件要实现的逻辑即可。

代码如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

Button button;

EditText username;

EditText password;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.login);

username = (EditText)findViewById(R.id.username);

password = (EditText)findViewById(R.id.password);

button.setOnClickListener(this);

}

@Override

public void onClick(View v) {

String username1 = username.getText().toString();

String password1 = password.getText().toString();

String ok = "登录成功";

String fail = "登录失败";

if (username1.equals("lhk") && password1.equals("123456")) {

Toast.makeText(MainActivity.this,ok,Toast.LENGTH_SHORT).show();

}else {

Toast.makeText(MainActivity.this,fail,Toast.LENGTH_SHORT).show();

}

}

}

登陆成功效果如下:

登陆成功

登录失败效果如下:

登录失败

Github地址

android自动登录简书,Android开发之简单登录界面相关推荐

  1. android 读写文件 简书,Android 中的文件操作

    Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...

  2. android自动登录简书,android 手机号实现登录功能

    先看看效果 image.png 我的这个登录功能是手机号和密码都已经在后台数据库有存储的,所以是直接登录. 重点有三个: 1.账号密码的存储,实现自动登录: 2.网络通信: 3.密码一定要Md5加密之 ...

  3. android自动登录简书,Android 自动登录——持久化Cookie

    背景 在使用鸿洋大神的玩Android网站开放的api开发android app时,使用Retrofit请求登录api,需要保存Cookie以备其他需要登陆后才能操作的api使用. 自定义拦截器实现持 ...

  4. android 辅助服务 简书,Android AccessibilityService使用

    测试demo主要使用了Android 的无障碍辅助服务(AccessibilityService),主要注意是 1. 开启服务,绑定目标app的监听(demo中根据包命绑定了体积计算的app),需要在 ...

  5. android四大组件 简书,android四大组件

    android有四大组件,分别是Activity, Service(服务),Content Provider(内容提供者),BoadcastReceiver广播接收器. Activity 一个Acti ...

  6. android 存储方式简书,Android的多种数据存储方式

    1. 简介 作为一个完整的应用程序,数据存储操作是必不可少的.现在Android的离线缓存就是通过网络良好状态时将从服务器收到的数据保存到本地.Android系统中主要提供了3种方式进行数据存储,分别 ...

  7. android权限适配 简书,Android动态权限适配

    最近APP里面要添加动态权限,网上找了不少例子并经过一定的测试,基本流程有了一定的认识,需要注意的地方记录下来以备以后查阅. 一 各大手机厂商的适配 依据各大手机Rom的不同表现,可以分为三种不同的模 ...

  8. android 截屏 简书,Android 内置应用截屏方法

    Android 中,内置应用如何更好的截屏 在开发系统应用的时候,有时候需要用到截屏,因为 View.getDrawingCache() 截不到状态栏,所以这个方案不理想 这有一个更好的方案,就是用 ...

  9. android运行过程简书,Android系统的启动流程

    Android系统有哪些进程 在Linux系统启动时,会读取init.rc,里面配置了一些需要启动的进程.注意:SystemServer进程不在init.rc里,因为SystemServer进程是由z ...

最新文章

  1. Java后端WebSocket的Tomcat实现
  2. POJ-2159(Water)
  3. drupal node 显示不同字段 node.tpl.php,修改Drupal Taxonomy Term列表显示方法
  4. C和指针之字符串简单实现 strcpy、strcat、strstr函数
  5. python linux log,linux,python 常用的处理log的命令
  6. Win7性能信息和工具在哪打开
  7. 数据科学 IPython 笔记本 8.17 使用 Seaborn 的可视化
  8. EasyUi – 1.入门
  9. 利用Python K-means实现简单图像聚类
  10. NFinal 控制器—URL
  11. EDEM后处理导出颗粒信息
  12. mysql语句解决查询乱码_sql命令查询出现乱码的解决方法详解
  13. opencv的逻辑运算bitwise详解
  14. MySQL数据库相关资料
  15. 存储运维知识点记录(netapp,华为,HP-3par,emc)
  16. 电脑桌面云便签怎么通过便签快捷键锁屏加密?
  17. 在 Excel 2007中手动为坐标图添加坐标轴标题
  18. Mali Offline Compiler 的 FMA CVT等GPU Shader结果参数说明
  19. Hutool操作和监听文件
  20. 基于ZigBee的智能家居系统设计

热门文章

  1. 凌动智行宣布获China AI Capital Limited战略投资 迟睿及李宇成董事会成员
  2. 51个Python鲜为人知的秘密特性,老司机看完都惊叹不已
  3. html上上上级目录,html如何表示上级目录
  4. 将家人从Gmail,Thunderbird,Outlook等迁移到Google Apps:权威指南
  5. Java EE开发基础
  6. 中央银行调节货币供应量的三个手段
  7. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)(Finchley版本)
  8. IE/Firefox每次刷新时自动检查网页更新,无需手动清空缓存的设置方法(转)
  9. 1100 校庆分数 25
  10. OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(二)PATCH是什么类型的patch?