-
2020-12-23 05:11:20
[导读]到目前为止,你已经熟悉了关于创建新项目、编程和重构的基础知识,是时候创建一款 Android应用(也称为App) 了。
到目前为止,你已经熟悉了关于创建新项目、编程和重构的基础知识,是时候创建一款 Android应用(也称为App) 了。本章介绍4 个实验项目中的第I 个。这些实验的目的是通 过开发Af)p 让你熟悉Android Studio的用法。在这个项目中,你将要开发一款用于管理备 忘事项列表的App»核心功能是允许你创建和删除备忘并将某些备忘标记为重要。重要的 事项会通过备忘文本左侧的橙色标签突出显示。这个App将会用到操作栏菜单、上下文菜 单、用于持久化的本地数据库以及支持多选的设备上的多项选择。
图 5-1展示了已完成的APP运行在模拟器上的样子。这个示例会向你展示Android基 础操作,你还会学到如何使用内置的SQLite数据库来持久化数据。如果不熟悉某些主题, 那么不必担心;后续章节会更加详细地涵盖这些主题。
注意
我们邀请你使用G it克隆此项目,以便跟随学习进度,尽管你将要从头开始重新创建 此项目的Git仓库。如果你的电脑上还没有安装Git,那么请阅读第7 章。在 Windows上打 开 Git-bash会话(或者M ac和 Linux上的终端),导 航 至 C:androidBookeference(如果没 有 reference目录,就创建它。在 M ac上导航至/your-labs-parent-dir/reference/)并执行以下 git 命令:git clone https://bitbucket.org/csgerber/reminders.git Reminders。
要 操 作 Reminders A p p :可以 使 用 Action Bar上的溢出菜单。单击溢出按钮(位于菜 单栏的右侧,看上去像三个竖直排列的小点,如 图 5-2所示)会打开一个带有两个选项的菜单:New Reminder和 Exit。单 击 New Reminder会打开如图5-3所示的对话框。在对话框中,可以为新备忘添加文本,然后单击Commit将其添加到列表中。单 击 Exit即可退出 App。
单击列表中的任意备忘会打开一个带有两个选项(Edit Reminder和 Delete Reminder)的上下文菜单,如 图 5-4所示。在上下文菜单中点击Edit Reminder会打开图5-5中所示的 Edit Reminder弹出对话框,可以在这里修改备忘的文本。点击上下文菜单中的Delete Reminder会从列表中删除备忘。
更多相关内容 -
用android studio写的一个备忘录
2021-06-09 17:19:00用android写的一个备忘录 -
android studio 简单备忘录
2018-06-12 13:24:20android studio 简单备忘录 简单的登录操作 和记录文本删除文本 等功能 -
Android Studio 备忘录(简单)实现
2020-07-01 16:39:48Android 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 -
Android 备忘录源码.zip
2021-12-16 15:09:54Android 备忘录源码.zip -
Android案例:备忘录。利用数据存储的文件内部存储
2020-07-27 18:08:45利用数据存储的文件内部存储开发技术,实现了一个简易的备忘录,其功能模块包括保存备忘录、读取备忘录等。 -
Android Studio-备忘录功能实现
2020-12-23 05:11:10终于,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手机备忘录的设计与实现开题报告.pdf
2020-09-03 19:27:08Android 手机备忘 录的设计与实现开 题报告 1 2020 年 4 月 19 日 邵阳学院毕业设计论文任务书 年级专业 级通信工程 学生姓名 学 号 课题名称 Android 手机备忘录的设计与实现 设计 (论文 ) 11 月 15 日至 06 月 10 ... -
android小作业,Android studio写的备忘录(记事本)| CSDN打卡
2022-01-28 14:06:24 -
Android代码-备忘录源码.zip
2019-08-02 16:54:52备忘录源码.zip -
Android Studio闹钟[android源码]
2020-08-05 23:54:20Android Studio闹钟[android源码] 界面简洁干净,此App有闹钟功能。闹钟可进行添加几组闹钟,实现简单的响铃闹钟提醒,长按已定闹钟可以删除闹钟 -
Android备忘录模式简单Demo
2016-02-21 15:50:03Android备忘录模式简单Demo,实现通过memoto备忘录实体,实现游戏存档和读档的功能简单模拟,便于理解备忘录模式.同步博文:http://blog.csdn.net/qq_28690547/article/details/50708415 -
基于安卓Android的手机备忘录设计(AndroidStudio)
2021-03-13 11:39:02基于安卓Android的手机备忘录设计(AndroidStudio)(论文11300字,程序代码)摘要:互联网技术和智能手机的普及,使人们接收到的信息变得越来越碎片化和多元化,人脑很难一一记下自己所要处理的每个信息,因此十分需要一... -
基于安卓android studio的日记APP 笔记APP或者备忘录APP 设计开发
2021-10-20 08:21:08<GridView android:id="@+id/gridView" android:layout_margin="0dp" android:numColumns="7" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp"> adapter... -
备忘录(闹钟)
2015-12-16 15:03:11备忘录,提供闹钟功能,便于提醒用户。使用户能够及时的收到提醒 -
Android——基于Android Studio开发备忘录客户端
2018-11-18 23:27:30此项目用来将学习android的基本内容应用于实际【现在有很多的备忘录、便签等类似源码】。这里源码主要源自Notepad。一般备忘录类似记事本,仅作为记录事件之用。这里还附加了其他功能。 开发工具 Android Studio... -
Android Studio-手把手教你做备忘录
2019-12-19 14:43:21终于,Android作业弄完了,最后一个,备忘录教学。 相关安卓教学内容: 启动界面:启动界面. 登录注册功能:https://www.jianshu.com/p/3882eaf8693e 首先第一步,还是老样子,创建一个NoteActivity。 ... -
Android studio给备忘录添加背景音乐
2021-12-12 23:53:00Android studio给备忘录添加背景音乐 目录Android studio给备忘录添加背景音乐一、音乐导入二、代码(1)AndroidMainfest.xml(2)MyIntentService类(3)EditActivity三、演示 一、音乐导入 在project/app/src/... -
Android Studio备忘录__gradle配置
2018-04-29 16:53:12https://www.jianshu.com/p/33089ca7c98e -
Android studio真机上测试时点击“添加备忘录”按钮后闪退
2021-06-05 12:38:44但在真机上测试时一点“添加备忘录”这个按钮就闪退,原博下面的评论里也有人反应这个问题。想知道是什么原因,应该怎样解决。求大神不吝赐教,感谢!!贴一下创建数据库的代码的代码:NotesDB.javapackagecom.example... -
基于Android的简易备忘录的设计与开发
2014-07-16 07:32:12该资源包含一个简易备忘录的全部代码,能实现基本功能:添加、搜索、删除、编辑事项,闹铃提醒,分享内容。更多内容根据你自己需求来开发。 -
andoird 备忘录记事本ui界面设计毕业设计源码,android studio编译多任务清单
2021-11-07 20:21:42andoird 备忘录记事本ui界面设计毕业设计源码,android studio编译多任务清单 ...andoird备忘录记事本ui界面设计毕业设计源码,androidstudio编译,项目有源文件和apk-互联网文档类资源-CSDN下载 ... -
AndroidStudio 备忘录之setTextColor
2019-05-06 21:50:52AndroidStudio 备忘录之setTextColor 方式一:<…android:color="#FFFFFF"/> 方式二:tv.setTextColor(0xFFFFFF); 方式三:tv.setTextColor(Color.GRAY); 方式四:tv.setTextColor(Color.rgb(255, 255, 255));... -
Android编程设计模式之备忘录模式详解
2020-08-28 10:45:20主要介绍了Android编程设计模式之备忘录模式,结合实例形式详细分析了Android备忘录模式的概念、原理、应用场景、用法及相关操作注意事项,需要的朋友可以参考下 -
Android 备忘录模式
2021-06-05 05:11:00前言备忘录模式顾名思义,就是保存当前某个状态,再经历过一些变化过后,还能恢复到这个状态。我们接触的比较多的是游戏里边的存档。影音播放器保存百分比等。我们要实现这个功能很简单,有很多种,备忘录模式就是... -
Android日历备忘录案例
2021-01-08 18:29:01该日历备忘录app实现了日历查看,添加备忘录,闹钟提醒,删除备忘录等功能,适合新手学习。 开发语言: java 技术框架: mvc 开发工具: AndroidStudio2.2,新手最好使用此版本搭建,不同版本修改配置比较繁琐 ... -
(干货)Android入门完整项目:一个有定时提醒功能的备忘录
2020-12-23 05:11:35public class EventDetailActivity extends BaseActivity {public static final String EXTRA_IS_EDIT_EVENT = "extra.is.edit.event";public static final String EXTRA_EVENT_DATA = "extra.event.data";... -
android记事本备忘录+闹钟提醒
2021-06-07 14:03:27【实例简介】android 记事本 备忘录 + 闹钟提醒完整代码,可直接运行【实例截图】【核心代码】notePad└── notePad7├── AndroidManifest.xml├── bin│ ├── classes.dex│ ├── com│ │ └── note│ ... -
AndroidStudio 备忘录之Spinner(下拉列表)
2019-06-04 23:28:42android:dropDownHorizontalOffset 设置列表框的水平偏移距离 android:dropDownVerticalOffset 设置列表框的水平竖直距离 android:dropDownSelector 列表框被选中时的背景 android:dropDownWidth 设置下拉列表... -
Android项目开发实战——简单备忘录
2021-06-07 19:41:39Android项目开发实战——简单备忘录项目简介新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...