轻松上手:<Android Studio笔记应用开发>(一)入门与笔记应用浅开发(快速阅览版)(代码汇总)

开发环境和工具配置

系统:Windows10
工具:Android Studio,版本:2022.3.19
语言:Java (版本:17)

1. 新建项目

Basic Views Activity

在这里插入图片描述

在这里插入图片描述

2. 成品的目录结构

在这里插入图片描述

3. 代码汇集

3.1 MainActivity.java

package com.example.my_notes_record;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;

import android.util.Log;
import android.view.View;
import android.widget.TextView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

    final String TAG = "FXS";  // 定义一个日志标签,用于调试
    FloatingActionButton btn;  // 声明一个悬浮按钮

    // 定义一个 ActivityResultLauncher
    private ActivityResultLauncher<Intent> someActivityResultLauncher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  // 设置布局文件为activity_main

        btn = findViewById(R.id.fab);  // 通过ID查找悬浮按钮视图

        // 初始化 ActivityResultLauncher
        someActivityResultLauncher = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    if (result.getResultCode() == RESULT_OK) {  // 如果返回结果为 RESULT_OK
                        Intent data = result.getData();  // 获取从 EditActivity 返回的数据
                        if (data != null) {
                            String edit = data.getStringExtra("input");  // 从返回的数据中获取名为 "input" 的字符串
                            Log.d(TAG, "点击事件\t" + edit);  // 在日志中打印字符串
                        }
                    }
                }
        );

        // 设置悬浮按钮的点击事件监听器
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 创建一个用于启动 EditActivity 的 Intent
                Intent intent = new Intent(MainActivity.this, EditActivity.class);
                someActivityResultLauncher.launch(intent);  // 使用 ActivityResultLauncher 启动 EditActivity
            }
        });
    }
}


3.2EditActivity.java

package com.example.my_notes_record;

import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

import java.security.Key;

public class EditActivity extends AppCompatActivity {

    EditText et;  // 声明一个 EditText 控件用于用户输入文本

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.edit_layout);  // 设置布局文件为 edit_layout

        et = findViewById(R.id.et);  // 通过 ID 查找 EditText 视图,用于获取用户输入的文本
    }

    // 当按下硬件按键时触发的方法
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_HOME) {  // 如果按下的是 HOME 键
            return true;  // 返回 true,表示已处理该按键事件
        } else if (keyCode == KeyEvent.KEYCODE_BACK) {  // 如果按下的是返回键
            Intent intent = new Intent();  // 创建一个新的 Intent 对象
            intent.putExtra("input", et.getText().toString());  // 将 EditText 中的文本数据放入 Intent 中,使用名为 "input" 的键
            setResult(RESULT_OK, intent);  // 设置返回结果为 RESULT_OK,并将 Intent 作为结果数据返回
            finish();  // 结束 EditActivity
            return true;  // 返回 true,表示已处理该按键事件
        }
        return super.onKeyDown(keyCode, event);  // 如果按下的不是上述两个键,使用默认的按键处理方法
    }
}


3.3 baseline_add_24.xml

<vector android:height="24dp" android:tint="#000000"
    android:viewportHeight="24" android:viewportWidth="24"
    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="@android:color/white" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>

3.4 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginStart="133dp"
        android:layout_marginTop="342dp"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="28dp"
        android:clickable="true"
        tools:srcCompat="@drawable/baseline_add_24" />

</RelativeLayout>

3.5 edit_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/et"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="top">

    </EditText>

</LinearLayout>

4.文件之间的关联

  1. MainActivity.java

    • 作用:主要用于应用的启动和主界面的展示,以及与其他活动的交互。
    • 关联:
      • 通过 someActivityResultLauncher 启动编辑笔记的 EditActivity
      • 响应编辑笔记后返回的数据,将编辑的文本数据打印到日志中。
      • 包含一个悬浮按钮(FloatingActionButton)用于启动编辑笔记。
    • 布局关联:使用 setContentView(R.layout.activity_main) 将布局文件 activity_main.xmlMainActivity 关联。
  2. EditActivity.java

    • 作用:用于编辑笔记的活动,允许用户输入文本,并将编辑后的文本数据返回给 MainActivity
    • 关联:
      • 接收从 MainActivity 传递过来的启动数据,包括编辑前的文本数据。
      • 允许用户编辑文本,并在按下返回键时将编辑后的文本数据返回给 MainActivity
    • 布局关联:使用 setContentView(R.layout.edit_layout) 将布局文件 edit_layout.xmlEditActivity 关联。
  3. baseline_add_24.xml

    • 作用:定义了一个矢量图标,表示“添加”操作的图标。
    • 关联:在 activity_main.xml 中使用 tools:srcCompat="@drawable/baseline_add_24" 将该图标与悬浮按钮关联,用于在主界面上添加新的笔记。
  4. activity_main.xml

    • 作用:定义了主界面的布局,包括显示笔记列表的 TextView 和用于添加新笔记的悬浮按钮。
    • 关联:
      • 使用 FloatingActionButton 来添加悬浮按钮,并为其设置点击事件,以便启动编辑笔记的 EditActivity
      • 包含一个用于显示文本的 TextView,这里仅作为示例展示 “Hello World!”。
  5. edit_layout.xml

    • 作用:定义了编辑笔记的布局,包括一个可供用户输入文本的 EditText
    • 关联:EditActivity 使用此布局来显示编辑笔记的界面,并允许用户输入和编辑文本。

5. 结果演示

请添加图片描述

点击上图中的悬浮按钮后,将跳转页面,见下图;

在这里插入图片描述

如上图所示,你可以在此界面编写。

在这里插入图片描述

芜湖!写好喽!

在这里插入图片描述

接下来,点击手机(AVD)的后退按键,你将在logcat界面见到你输入的信息(见下图)。记得筛选词哦~~

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孤酒_21L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值