安卓技术实战01 第一个安卓APP案例

目录

1. 创建项目与文件组织

 2 线性布局与控件

2.1 文本框

2.2 嵌套线性布局

2.3 为控件自定义背景图片

3 页面跳转

3.1 直接跳转方法

3.2 编写单独的点击函数

3.3 Toast提示


编译器选择:Android Studio

1. 创建项目与文件组织

创建一个新的 Empty Activity,设置项目名称,选择项目路径及编程语言;点击 Finish 即可。

安卓技术实战01 第一个安卓APP案例_第1张图片

 项目创建完成后,先将项目视图切换为Project模式

安卓技术实战01 第一个安卓APP案例_第2张图片

这里重点关注src组织下的内容:

安卓技术实战01 第一个安卓APP案例_第3张图片

  1. MainActivity下,写应用程序相关的java代码
  2. layout下存储的是布局文件,我们可以在布局文件中添加需要的控件
  3. values下存放的是颜色、字符串、风格样式等信息
  4. Manifest下指定我们要启动的activity
  5. drawable下存放的是程序需要的背景文件

 2 线性布局与控件

下面我们将重心转回到activity_main.xml,学习线性布局,重点关注以以下几个要点:

  • 线性布局中必须要包含的一个属性是 android:orientation="vertical"
  • 布局的宽度和高度有 match_parent 和 wrap_content 两种模式,前者表示匹配布局;后者则是根据内容自适应
  • 设置背景图片
    • 首先设计好自己需要的背景素材,将其拷贝到drawable目录下,并修改成你需要的名字
    • 在activity_main的线性布局中,android:background="@drawable/app_background"
  • 线性布局支持嵌套

 我们可以在线性布局中定义相关的控件:

2.1 文本框

 必须定义的属性字段:

  • id:后续使用该控件的唯一标识
  • hint:指定文本控件的提示文本
  • layout_width:控件的宽度
  • layout_height:控件的高度
  • textSize:文本的尺寸
  • textColor:文本的颜色

可选字段:

  • 密码密文显示:android:inputType="textPassword"
  • 文本与边框的距离:android:padding="10dp"
  • 提示文本的颜色设定:android:textColorHint="#FFFFFF"

2.2 嵌套线性布局

案例:在一个线性布局上,放置两个登录和注册按钮

    
        
    

2.3 为控件自定义背景图片

自定义背景文件

 登录按钮的背景文件定义代码:




    
    

下面是完整的线性布局文件:




    
    
    
        
    

效果如下:

安卓技术实战01 第一个安卓APP案例_第4张图片

3 页面跳转

3.1 直接跳转方法

方法1:在src -- main -- java下的MainActivity.java的同一层次下,创建一个新的Empty Activity,

安卓技术实战01 第一个安卓APP案例_第5张图片

设置完名字后,直接点击Finish。

安卓技术实战01 第一个安卓APP案例_第6张图片

 可以看到,创建Activity的同时也创建了相应的布局文件。

同样地,我们在布局文件中,简单添加一个TextView,提示我们跳转成功了。



    

 然后,在主Activity中的java文件中,添加跳转的代码:

  • 首先创建按钮类型的成员变量
  • 通过findViewById方法找到按钮,这个id就是前面我们在布局文件中写的id了
  • 添加按钮的点击事件,主要是重写onClick()方法,新建intent并启动intent
  • intent的参数中,第一个是主Activity.this, 第二个是跳转Activity.class.
package com.example.myapplicationexample;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private Button mBtnLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 根据id找到控件
        mBtnLogin = findViewById(R.id.btn_login);
        // 实现跳转
        mBtnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = null;
                intent = new Intent(MainActivity.this, Main2Activity.class);
                startActivity(intent);
            }
        });
    }
}

3.2 编写单独的点击函数

  • 点击函数编写
    public void onClick(View view) {
        String username = mEtUsername.getText().toString();
        String password = mEtPassword.getText().toString();
        Intent intent = null;

        if(username.equals("myz") && password.equals("gis2021"))
        {
            ToastUtil.showMessage(MainActivity.this, "账号密码正确");
            intent = new Intent(MainActivity.this, Main2Activity.class);
            startActivity(intent);
        }else {

        }
    }
  • 调用函数编写,这里需要使用 alt+enter 进行类集成
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mBtnLogin;
    private EditText mEtUsername;
    private EditText mEtPassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 根据id找到控件
        mBtnLogin = findViewById(R.id.btn_login);
        mEtPassword = findViewById(R.id.et_password);
        mEtUsername = findViewById(R.id.et_username);
        // alt + enter查看错误
        mBtnLogin.setOnClickListener(this);
    }
    public void onClick(View view) {
        String username = mEtUsername.getText().toString();
        String password = mEtPassword.getText().toString();
        Intent intent = null;

        if(username.equals("myz") && password.equals("gis2021"))
        {
            intent = new Intent(MainActivity.this, Main2Activity.class);
            startActivity(intent);
        }else {
        }
    }

    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {

    }
}

3.3 Toast提示

方法1:直接在底部显示:

Toast.makeText(getApplicationContext(), "账号密码正确", Toast.LENGTH_SHORT).show();

方法2:居中弹出:

Toast centerToast = Toast.makeText(getApplicationContext(), "账号或密码错误", Toast.LENGTH_SHORT);
centerToast.setGravity(Gravity.CENTER, 0,0);
centerToast.show();

方法3:定义类弹出

  • 创建包

安卓技术实战01 第一个安卓APP案例_第7张图片

  •  在包中新建java类

安卓技术实战01 第一个安卓APP案例_第8张图片

 安卓技术实战01 第一个安卓APP案例_第9张图片

  • 撰写java代码,定义类文件:
package com.example.myapplicationexample.util;

import android.content.Context;
import android.widget.Toast;

public class ToastUtil {
    public static Toast mToast;
    public static void showMessage(Context context, String wsg)
    {
        if(mToast == null)
        {
            mToast = Toast.makeText(context, wsg, Toast.LENGTH_SHORT);
        }else{
            mToast.setText(wsg);
        }
        mToast.show();
    }
}
  •  类调用:
ToastUtil.showMessage(MainActivity.this, "账号密码正确");

相关代码链接:

MyApplicationExample.zip-其它文档类资源-CSDN下载

你可能感兴趣的:(Android开发笔记,android,java,apache)