精华内容
下载资源
问答
  • Android Studio 备忘录(简单)实现

    千次阅读 热门讨论 2020-07-01 16:39:48
    Android Studio 环境下,备忘录(简单)的实现,功能有:添加,单个查询,删除全部内容,并可获取当前时间存储在SqlLite中。所用到的显示控件为 ScrollView,EditText,TextView,ImageButton. 图片展示 首页 添加页 ...

    项目简介

    Android Studio 环境下,备忘录(简单)的实现,功能有:添加,单个查询,删除全部内容,并可获取当前时间存储在SqlLite中。所用到的显示控件为 ScrollView,EditText,TextView,ImageButton.

    图片展示

    首页

    在这里插入图片描述

    添加页

    在这里插入图片描述

    添加后的页面

    在这里插入图片描述

    Acticity_main.xml代码展示

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        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"
        android:background="@drawable/backgroundone"
        android:orientation="vertical"
        tools:context=".MainActivity">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_gravity="center_horizontal">
            <TextView
                android:id="@+id/test"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:text="我的备忘录"
                android:textColor="#474646"
                android:textSize="45sp"
                android:textStyle="bold" />
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:orientation="horizontal">
    
            <EditText
                android:id="@+id/view_select"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:ems="13"
                android:hint="此处可以查询数据!"
                android:inputType="textPersonName" />
    
    
            <ImageButton
                android:id="@+id/btn_select"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                app:srcCompat="@android:drawable/ic_menu_search" />
    
        </LinearLayout>
    
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="490dp"
            android:layout_margin="5dp"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="20dp">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
    
                <TextView
                    android:id="@+id/data"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center_horizontal"
                    android:textSize="20dp"></TextView>
            </LinearLayout>
    
        </ScrollView>
    
        <ImageButton
            android:id="@+id/btn_add"
            android:layout_width="80dp"
            android:layout_height="74dp"
            android:layout_marginLeft="300dp"
            android:background="@android:color/transparent"
            app:srcCompat="@drawable/add1" />
    
    
    </LinearLayout>
    

    Acativity_add.xml (添加)代码展示

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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"
        android:orientation="vertical"
        tools:context=".add">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <ImageButton
                android:id="@+id/btn_back"
                android:layout_width="140dp"
                android:layout_height="60dp"
                android:background="@color/colorSilve"
                app:srcCompat="@android:drawable/ic_menu_revert" />
    
            <ImageButton
                android:id="@+id/btn_finish"
                android:layout_width="130dp"
                android:layout_height="60dp"
                android:visibility="visible"
                android:background="@color/colorSilve"
                app:srcCompat="@android:drawable/checkbox_on_background" />
    	  <!--颜色是资源文件里设置好的,也可以自己随意改边颜色-->
            <ImageButton
                android:id="@+id/btn_clear"
                android:layout_width="140dp"
                android:layout_height="60dp"
                android:visibility="visible"
                android:background="@color/colorSilve"
                app:srcCompat="@android:drawable/ic_delete" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:id="@+id/now_time"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:textStyle="bold"
                android:textSize="20dp">
            </TextView>
    
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <EditText
                android:id="@+id/data_information"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#00FFFFFF"
                android:gravity="start"
                android:textSize="25dp"
                android:hint="此处写文章"
                android:textColor="#070507"
                >
            </EditText>
    
    
        </LinearLayout>
    
    
    
    
    </LinearLayout>
    

    MainActivity.java代码展示

    package com.example.twicehomework;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    public class MainActivity extends AppCompatActivity {
        private ImageButton btn_add;
        private TextView data;
        private ImageButton btn_select;
        private EditText view_select;
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            data = findViewById(R.id.data);
            btn_select = findViewById(R.id.btn_select);
            view_select = findViewById(R.id.view_select);
    
    
    
            //跳转
            btn_add = (ImageButton) findViewById(R.id.btn_add);
            btn_add.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, add.class);
                    startActivity(intent);
                }
            });
    
    
            /*
            * 页面传递值
            * */
            Intent i = getIntent();
            String get_data = i.getStringExtra("data");
            data.setText(get_data);
    
    
            //查询监听
            btn_select.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String input = view_select.getText().toString().trim();
                    String get = data.getText().toString().trim();
    
                    //判断查询信息输入是否为空,并返回值
                    if (!input.isEmpty()) {
                        int a = get.indexOf(input); //内容第一次出现的位置
    
                        //判断查询内容是否存在
                        if ( a != -1 ){
    
                            String front = get.substring(0,a+1);    //查询内容字段的位置的前一段数据截取
                            String after = get.substring(a+1,get.length()); //查询内容字段的位置的的后一段数据截取
    
                            int a1 = front.lastIndexOf("2020"); //前一段数据最后一次出现2020的位置
                            int b1 = after.indexOf("2020"); //后一段数据第一次出现2020的位置
    
    
                            String front2 ;//传值位
                            String after2 ;//传值位
    
                            //防止查询数据为第一位,出现错误
                            if (a1 == -1) {
                               front2 = front;
                            }else{
                                String front1 = front.substring(a1, front.length());
                                front2 = front1;
                            }
    
                            //防止查询数据为最后一位,出现错误
                            if (b1 == -1){
                                after2 = after;
                            }else {
                                String after1 = after.substring(0,b1);
                                after2 = after1;
                            }
    
                            showMsg(front2 + after2 );//显示查询结果信息
    
                        }else {
                            showMsg("无匹配数据");
                        }
    
                    }else{
                        showMsg("请输入查询的数据");
                    }
                }
    
            });
    
        }
    
        //显示提示消息
        private void showMsg(String msg){
            Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
        }
    }
    

    add.java代码展示

    package com.example.twicehomework;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.content.Intent;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    
    public class add extends AppCompatActivity {
    
        private ImageButton btn_back; //返回按钮
        private ImageButton btn_finish;//完成按钮
        private ImageButton btn_clear;//清楚所有数据按钮
    
    
        private TextView now_time;//当前时间
        private EditText data_information;//存储数据
    
    
    
    
        //与数据库操作相关的成员变量
        private MyDbHelper myDbHelper;//数据库帮助类
        private SQLiteDatabase db;//数据库类
        private ContentValues values;//数据表的一些参数
        private static final String mTablename = "mymemo";//数据表的名称
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_add);
    
            //建立联系
            btn_back = findViewById(R.id.btn_back);
            data_information = findViewById(R.id.data_information);
            now_time = findViewById(R.id.now_time);
            btn_finish = findViewById(R.id.btn_finish);
    
    
            btn_clear = findViewById(R.id.btn_clear);
    
    
            //初始化数据库工具类实例
            myDbHelper  = new MyDbHelper(this);
    
    
            //获取手机当前时间
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date(System.currentTimeMillis());
            final String str_time = simpleDateFormat.format(date);
            now_time.setText(str_time);
    
    
    
    
            //返回主界面
            btn_back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent();
                    intent.setClass(add.this,MainActivity.class);
                    startActivity(intent);
                    queryData();
    
                }
            });
    
    
    
            //完成并执行添加操作
            btn_finish.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String input = data_information.getText().toString().trim();
                    if (input.isEmpty()){
                        showMsg("请输入要记录的内容");
                    }else {
                        addData(str_time.trim(),input);
                        finish();
                        queryData();
                    }
                }
            });
    
            btn_clear.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    clearData();
                    showMsg("数据清楚完毕");
                }
            });
    
        }
    
    
        //添加数据方法
        private void addData(String now_time,String data_information){
            db = myDbHelper.getWritableDatabase();
            values = new ContentValues();
            values.put("now_time",now_time);
            values.put("information",data_information);
            db.insert(mTablename,null,values);
            showMsg("添加成功");
    
        }
    
        //清空所有数据的方法
        private void clearData(){
    
            db = myDbHelper.getWritableDatabase();
            db.delete(mTablename,null,null);
            String srtResult = "";
            Intent intent = new Intent(add.this,MainActivity.class);
            intent.putExtra("data",srtResult);
            startActivity(intent);
            showMsg("已经全部清空");
        }
    
    
        //显示消息方法
        private void showMsg(String msg){
            Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
        }
    
    
        //查询方法
        private void queryData(){
            db = myDbHelper.getReadableDatabase();
            Cursor cursor = db.query(mTablename,null,null,null,
                    null,null,null);
            String srtResult = "";
            while (cursor.moveToNext()){
                srtResult += "\n" + cursor.getString(1);
                srtResult += "\n内容:" + cursor.getString(2);
                srtResult += "\n";
            }
            Intent intent = new Intent(add.this,MainActivity.class);
            intent.putExtra("data",srtResult);
            startActivity(intent);
        }
    
    
    
    
    
        /*
        *
        *
        * 自定义数据库帮助类,sqllite部分
        *
        * */
        class MyDbHelper extends SQLiteOpenHelper{
    
            public MyDbHelper(@Nullable Context context) {
                super(context, "mymemo.db", null, 2);
            }
    
            //只在创建数据库时,创建一次这个表
            @Override
            public void onCreate(SQLiteDatabase db) {
                db.execSQL("create table " + mTablename + "(_id integer primary key autoincrement, " +
                        "now_time varchar(50) unique,information varchar(100) )");
            }
    
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
            }
        }
    }
    

    项目难点

    思想

    首先,整个的设计思想为一个页面显示信息,一个页面添加删除信息,因此会有两个xml文档以及对应的两个java文档,activity_main.xml 对应的MainActivity.java,activity_add.xml对应的add.java ,在activity_main.xml 中显示备忘录信息,以及查询备忘录信息。在activity_add.xml中实现把信息添加到数据库中。此项目使用的数据库为sqlLite,因为本文不涉及LIstView控件的使用,只是涉及到sqlLite通过Intent传值再现实,代码中已经体现。

    代码

    代码部分的难点有sqlLite如何创建表以及添加删除操作,页面的传值操作。

    在sqlLite查询中通过页面转换的控制利用Intent进行传值,将数据传送到显示页面中在进行展示。

     //查询方法
        private void queryData(){
            db = myDbHelper.getReadableDatabase();
            Cursor cursor = db.query(mTablename,null,null,null,
                    null,null,null);
            String srtResult = "";
            while (cursor.moveToNext()){
                srtResult += "\n" + cursor.getString(1);
                srtResult += "\n内容:" + cursor.getString(2);
                srtResult += "\n";
            }
            Intent intent = new Intent(add.this,MainActivity.class);
            intent.putExtra("data",srtResult);
            startActivity(intent);
        }
    

    除过传值,在主界面查询中会有缺陷,只能查询单次的,并且不能对查询内容进行修改。

    声明

    本文用来当做参考,为刚开始学习Android Studio的同志提供思路,如文章有缺陷,可以在评论区下方打出,让其他同志参考。本项目源码将在GitHub中上传,帮助到各位的话,还请添加收藏关注一下。
    https://github.com/bestxiaoxiaoming-hm/AS-Memorandum

    展开全文
  • ** AndroidStudio 备忘录之performClick方法—代码调用点击事件(模拟去触摸控件) 这个方法的作用:使用代码主动去调用控件的点击事件(模拟人手去触摸控件) performClick方法 参考处 ...

    **

    AndroidStudio 备忘录之performClick方法—代码调用点击事件(模拟去触摸控件)

    这个方法的作用:使用代码主动去调用控件的点击事件(模拟人手去触摸控件)
    performClick方法 参考处

    展开全文
  • 终于,Android作业弄完了,最后一个,备忘录教学。相关安卓教学内容:首先第一步,还是老样子,创建一个NoteActivity。image.png第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,...

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

    相关安卓教学内容:

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

    image.png

    第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,注册当中已经教学的很详细了,直接上代码吧,反正我码再多字估计你们也不看....

    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">

    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"/>

    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"/>

    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" />

    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" />

    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个字" />

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

    image.png

    接下来打开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,

    调整启动顺序

    image.png

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

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

    image.png

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

    image.png

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

    image.png

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

    image.png

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

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

    展开全文
  • 终于,Android作业弄完了,最后一个,备忘录教学。相关安卓教学内容:首先第一步,还是老样子,创建一个NoteActivity。image.png第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,...

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

    相关安卓教学内容:

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

    image.png

    第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,注册当中已经教学的很详细了,直接上代码吧,反正我码再多字估计你们也不看....

    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">

    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"/>

    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"/>

    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" />

    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" />

    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个字" />

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

    image.png

    接下来打开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,

    调整启动顺序

    image.png

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

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

    image.png

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

    image.png

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

    image.png

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

    image.png

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

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

    展开全文
  • android studio使用备忘录

    千次阅读 2015-10-28 10:33:04
    二、android studio常规设置1、加入代码行数 File -> setting -> Editor ->General->Appearance (http://img.blog.csdn.net/20151028160619031) 2、Android Studio apk 打包流程 Build -> Gene
  • DataBinding Support 快速实现DataBinding布局. ECTranslation 翻译 用法: 选中要翻译的代码 右击-translation. FindBugs-IDEA 静态代码检查 GsonFormat ...SelectorChapek for Android ...
  • 之前as快捷键用的是eclipse的设置,但这样有一些功能用不了,所以恢复默认了。 修复错误 Alt+Enter ...现在来我几乎抛弃了eclipse,电脑配置跟上以后发现Android studio太好用了。 转载于:https:/...
  • 基于安卓Android的手机备忘录设计(AndroidStudio)(论文11300字,程序代码)摘要:互联网技术和智能手机的普及,使人们接收到的信息变得越来越碎片化和多元化,人脑很难一一记下自己所要处理的每个信息,因此十分需要一...
  • 1、布局跳到代码:选中布局+Ctrl+B 2、清除无用包:Ctrl+Alt+O 3、自动整理代码格式:Ctrl+Alt+L 4、代码补全快捷键设置:File->Settings->Keymap->Main menu->Code->Completion:设置Basic为你想要...
  • Android日历备忘录案例

    2021-01-08 18:29:01
    该日历备忘录app实现了日历查看,添加备忘录,闹钟提醒,删除备忘录等功能,适合新手学习。 开发语言: java 技术框架: mvc 开发工具: AndroidStudio2.2,新手最好使用此版本搭建,不同版本修改配置比较繁琐 ...
  • 作者 / Scott Swarthout, 产品经理我们很高兴发布了 Android Studio 4.1 稳定版,为大家带来一系列针对常见的编辑、调试和优化工作的功能。4.1 版本的重点诉求之一是帮助您在使用 Android Jetpack 库 (即 Android 的...
  • 1.Android butterknife zelezny 2.gsonfomat 3.ectranslation 4.adbeifi 5.permission dispatcher plugin ctrl+shift+i 快速查看函数实现 ctrl+shift+enter 补全if,for等函数结构 ctrl+shift+上下箭头 快速...
  • Android Studio-手把手教你做备忘录

    千次阅读 多人点赞 2019-12-19 14:43:21
    终于,Android作业弄完了,最后一个,备忘录教学。 相关安卓教学内容: 启动界面:启动界面. 登录注册功能:https://www.jianshu.com/p/3882eaf8693e 首先第一步,还是老样子,创建一个NoteActivity。 ...
  • 1、下载安装NDK的过程略过,网上资料很多。 2、修改local.properties ...代码如下,defaultConfig中增加ndk,模块名为java类名,abiFilters为底层架构。增加sourceSet。 import org.apache.tools.ant.taskdefs.condit
  • Android butterKnife Zelezny是一款注解框架插件,优点是节约开发时间和减少代码量,减少开发是繁琐的开发量,缺点看个人。我认为一种新的工具或框架,凡是在某种业务场景下,利大于弊,那就是值得使用。
  • 这是Android程序设计与开发(Android Studio版)课程的课程设计——“备忘录“软件源代码。没有bug,保证符合课设要求,老师已验收过,成绩优秀。
  • Android开发————简易备忘录

    千次阅读 多人点赞 2018-11-12 10:51:09
    2. 按照实验课要求制作对应的app小程序,实现按钮添加备忘录。 3. 编写并提交实验报告。 实验步骤 (1)main_activity.xml代码: &lt;?xml version="1.0" encoding="utf-8"?&gt; &...
  • 如有漏掉的,还会陆续的补充进来,算做是一个备忘录吧。1 水平居中01、 内联元素水平居中利用 text-align: center 可以实现在块级元素内部的内联元素水平居中。此方法对内联元素(inline), 内联块(inline-bl...
  • Android开发——简易备忘录(三)

    千次阅读 2018-11-12 11:01:37
    1. android 开发环境搭建, 开发工具可以是eclipse+adt 或android studio。 2. 按照实验课要求制作对应的app小程序,实现按钮添加备忘,并且包含日期时间。 3. 编写并提交实验报告。 实验步骤 1.部分代码如下...
  • 最近开发新项目,需要进行版本控制,以前没有在AndroidStudio使用过SVN,查找了一些资料,现在简单整理一下,做一个备忘,也希望让读者朋友们少走一点弯路.首先记录一下将代码上传到SVN服务器仓库,步骤如下:一. 选择忽略...
  • 来源 |https://cloud.tencent.com/developer/article/1115615CSS居中是前端工程师经常要面对的问题,...如有漏掉的,还会陆续的补充进来,算做是一个备忘录吧。1 、水平居中01、 内联元素水平居中利用 text-align: c...
  • 1. android 开发环境搭建, 开发工具可以是eclipse+adt 或android studio。 2. 按照实验课要求制作对应的app小程序,实现按钮添加备忘,并且包含日期时间。 3. 编写并提交实验报告。 实验步骤 实验代码如下: ...
  • Android设备上的简易备忘录(Memo) 具有闹钟功能

    万次阅读 热门讨论 2017-02-01 02:55:41
     在学习android的过程中,用的是android studio,因而主要看的两本书也是与基于android studio平台的,分别是《Android APP 开发入门》和《第一行代码(第二版)》,程序中的不少代码都是来自这两本书上的,确实对像...
  • 期末设计,使用AndroidStudio制作的包含登陆注册界面(使用Sqlite数据库),时钟,闹钟,计时器,备忘录,秒表功能的代码
  • 在普通的Flutter应用里,在右上角有个Debug的标记,有些时候不希望有,尤其是截图或录屏的时候,需要移除这个标记,这里记录下相关的Tips,备忘一下,以便以后...)第二种方法,在Android Studio里,打开Flutter In...
  • 一直使用eclipse,使用Android Studio一开始有点不太习惯其构建方式,故备忘个记录以便查看。 典型的一个应用工程界面 如上图所示,我将界面分为5个区域做详细的讲解: 区域1介绍 这个区域是运行和调试...
  • Mac使用Androidstudio在Gitlab拉取项目

    千次阅读 2019-09-02 17:51:46
    3.进入项目详情页右侧这个按钮上获取链接,复制粘贴到新建文本,或者备忘录 4. 打开AndroidStudio,选择第三个使用git 填写刚刚复制下来的url填写上去,并进行Test测试 正确的情况下,点击Test之后,...
  • AndroidStudio 广播详解

    千次阅读 2019-03-15 09:16:36
    //备忘:下载安卓源代码 广播机制,先说一下广播分为:标准广播,和有序广播。 标准广播是一种完全异步的广播,在广播发出后,所有的广播接收器几乎会在同一时间,同时接收到广播,效率高但是无法截断。 有序广播...
  • Android Studio中的TODO和FIXME

    千次阅读 2017-08-29 17:07:54
    人是容易健忘的,所以我们会使用很多备忘录软件避免错过一些重要的事情与之类似,当我们在敲代码的时候如果遇到下面这些情况1 UI妹妹还没有给我图,这个A界面暂时先写逻辑等有了图再继续写2 B界面这块的代码太混乱了...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

androidstudio备忘录代码