终于,Android作业弄完了,最后一个,备忘录教学。


首先第一步,还是老样子,创建一个NoteActivity。

android studio备忘录 android studio备忘录设计_app

第二步,打开activity_note.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=".NoteActivity"
    android:background="@drawable/notebg">
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="备忘录"
        android:textSize="30dp"/>

    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:minLines="17"
        android:inputType="textMultiLine"
        android:hint="点击此处输入文字"
        android:background="@null"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/button4"
        android:layout_alignParentEnd="true"
        android:layout_below="@+id/textView3"
        android:gravity="left|top"
        android:textSize="20dp"/>

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存"
        android:layout_alignParentBottom="true"
        android:layout_alignStart="@+id/editText3" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="重置"
        android:layout_alignParentBottom="true"
        android:layout_alignEnd="@+id/editText3" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView3"
        android:layout_alignEnd="@+id/editText3"
        android:text="0个字" />

</RelativeLayout>

效果如下:怎么样,看上去还不错吧?

android studio备忘录 android studio备忘录设计_安卓_02

接下来打开NoteActivity,直接上代码,不想码注释了,码了也没人看,反正你们最喜欢的就是复制粘贴代码

package com.wxy.homework;
import android.content.Context;
import android.content.pm.ActivityInfo;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class NoteActivity extends AppCompatActivity {
    private EditText inputInfo;
    private Button save;
    private Button reset;
    private TextView count;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_note);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setFullScreen();
        hideBar();

        inputInfo = (EditText) findViewById(R.id.editText3);
        save = (Button) findViewById(R.id.button4);
        reset = (Button) findViewById(R.id.button5);
        count = (TextView)findViewById(R.id.textView4);

        inputInfo.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                count.setText(inputInfo.getText().length()+"个字");
            }
        });

        onload();
        inputInfo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                inputInfo.setCursorVisible(true);
            }
        });
        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FileOutputStream fos = null;
                try{
                    fos = openFileOutput("txt", Context.MODE_PRIVATE);
                    String text = inputInfo.getText().toString();
                    fos.write(text.getBytes());
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    try{
                        if(fos!=null){
                            fos.flush();
                            Toast.makeText(NoteActivity.this,"保存成功!",Toast.LENGTH_SHORT).show();
                            fos.close();
                        }
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        });

        reset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FileOutputStream fos = null;
                inputInfo.setText("");
                try{
                    fos = openFileOutput("txt", Context.MODE_PRIVATE);
                    String text = "";
                    fos.write(text.getBytes());
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    try{
                        if(fos!=null){
                            fos.flush();
                            Toast.makeText(NoteActivity.this,"清空成功!",Toast.LENGTH_SHORT).show();
                            fos.close();
                        }
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        });
    }

    public void onload(){
        FileInputStream fis = null;
        try{
            fis = openFileInput("txt");
            if(fis.available()==0){
                return;
            }else{
                byte[] con = new byte[fis.available()];
                while(fis.read(con)!=-1){

                }
                inputInfo.setText(new String(con));
                inputInfo.setSelection(inputInfo.getText().length());
                inputInfo.setCursorVisible(false);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    long time;
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN){
            if(System.currentTimeMillis()-time>2000){
                Toast.makeText(NoteActivity.this,"再次点击返回键,程序退出",Toast.LENGTH_SHORT).show();
                time = System.currentTimeMillis();
            }else{
                NoteActivity.this.finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

    private void hideBar(){
        ActionBar actionBar = getSupportActionBar();
        if(actionBar!=null){
            actionBar.hide();
        }
    }

    private void setFullScreen(){
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

}

然后,老师作业要求是,登录之后,直接跳转到备忘录,所以我们要调整启动顺序。打开LoginActivity,
调整启动顺序

android studio备忘录 android studio备忘录设计_android studio备忘录_03

好了,激动人心的时候又到了,直接开始测试

我们输入之前注册的用户名称和密码进行登录

android studio备忘录 android studio备忘录设计_安卓_04

发现登录成功,完美跳转到备忘录界面

android studio备忘录 android studio备忘录设计_app_05

我们输入任意字符,点击保存,发现保存成功,且下次登录时,直接显示保存的字符

android studio备忘录 android studio备忘录设计_移动开发_06

我们点击右下角的重置,发现备忘录内容全部清空,完美运行

android studio备忘录 android studio备忘录设计_移动开发_07


好了我亲爱的同学们,安卓作业搞定了。

欢迎关注我,我将不定期更新教学博客和技术贴。