本篇文章适用还未接触过android开发的小伙伴,提供很简单的案例,让大家快速上手,保持信心。
创建项目 UI布局 java代码逻辑实现效果如下:
我们使用android studio开发,创建项目前的准备:
安装好android studio; 安装好jdk; 安装好sdk; 安装好avd(虚拟机),也可用自己手机debug。ps:以上的操作百度很多很详细,就略过了。 开始创建我的第一个项目
new project -》 选择 empty activity -》 编辑信息后finish
LinearLayout(线性布局)和RelativeLayout(相对布局)
备注: 不止这两种布局,不过二者用的最多,他们就相当于窗户的框,里面的玻璃分成几个部分设计,布局可以嵌套使用(有过前端基础的很好理解)。
①LinearLayout(线性布局)
android:gravity:控件自身上面的内容位置
android:layout_gravity:控件本身相对于父控件的显示位置
注意:在父容器设置为竖直方向时,layout_gravity只能控制水平位置;而当父容器设置为垂直方向时,layout_gravity只能控制竖直位置。
android:layout_weight:给控件分配剩余空间,分配权重
注意:layout_weight在设置前必须设置元素的高/宽为0dp,这样分配的空间才标准。因为权重最基本的用法就是 对线性布局指定方向(水平或垂直)上剩余空间分配的一个规则,先把规定的大小占完,再来按比例分配剩余空间
android:orientation:设置线性布局的排版方向,有**vertical (垂直方向) 、horizontal(水平方向)**两种布局方式
②RelativeLayout(相对布局)
(android:)后面的内容就是属性,包括width宽度等等;
其中的match_parent:就是占满父空间,而wrap content:就是内容多大,框就多大。
id:是每个组件的身份证,唯一,通过id找到这个组件(组件就是每一个小部分,比如按钮,文本框等等);
text:就是文本内容(button按钮中就是按钮上的值);
hint:就是默认文本,比如我们在登录的输入框里,会先显示先显示一个“enter your password”内容。
暂时介绍这些,更多的属性面向百度,多去常试,使用方法一样。
Java逻辑代码部分这部分有过java基础的小伙伴应该很容易看懂,没有java基础的应该先去学习java基础知识。
MainActivity.java 代码如下:
package edu.naipan.login;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initListener();
}
// 获取组件,初始化
private TextView dev_UserName;
private TextView dev_Password;
private Button btn_login;
private void initView() {
dev_UserName = findViewById(R.id.dev_UserName);
dev_Password = findViewById(R.id.dev_Password);
btn_login = findViewById(R.id.btn_login);
}
// 设置点击监听
private void initListener() {
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取文本内容
String userName = dev_UserName.getText().toString();
String password = dev_Password.getText().toString();
// setTitle("账号"+userName+"密码"+password);
// 判断用户名是否为空;
if(TextUtils.isEmpty(userName)){
dev_UserName.setError("用户名不能为空");
return;
}
// 判断密码是否为空;
if(TextUtils.isEmpty(password)){
dev_Password.setError("密码不能为空");
return;
}
// 判断用户名与密码是否匹配;
if(userName.equals("naipan") && password.equals("201750080522")){
setTitle("密码正确");
return;
}
else{
setTitle("密码不正确");
return;
}
}
});
}
}
相信大家看不懂的地方就是一些api不清楚,这就是我们需要练习,慢慢掌握积累的,包括我们学的很多东西,语言是基石,更多的是我们要学会有可以利用的工具。
setContentView(R.layout.activity_main);
这个就是映射到我们写的布局了;R是一个类,保存了许多资源,可以看到R.layout.activity_main就是位置索引。
findViewById(R.id.dev_UserName);
这个就是之前说的id,作为身份证找到对应的组件,这里的dev_UserName就是我定义文本框的id,我们可以获得id对应的组件的内容,这样我们就可以对数据进行相应的操作了。
其他的api我就不一一解释了,我们可以查手册,百度等等,大家可以动手练习了。
就到这了,内容很简单,主要运用这个简单的例子,让大家对android开发有个大致的了解,之后我们继续深入学习。
作者:nai_dev