我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android毕业设计备忘录APP

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android毕业设计备忘录APP

源码放到GitHub上了,大家可以看一下 https://github.com/become-better1/hh

1.系统需求分析

1.1 系统功能及框图
该项目实现了备忘录的创建,修改,删除,查询,对备忘录数目的统计和软件的说明。

1.2 系统需求

功能&说明

备忘录的创建 主键自动生成,将控件中的数据对Word字段进行赋值
备忘录的修改 将控件中的数据对Word字段进行赋值,查询条件是与原先的Word字段相等
备忘录的查询 对Word字段进行查询,查询条件是与控件中的数据相等
备忘录的删除 按照Word字段进行删除,查询条件是与控件中的数据相等
备忘录数目的统计 通过SharedPrefenrences来存储和读取数据
软件的说明 进一步的描述

1.3 该项目涉及到的技术点

界面控件:TextView,EditText,Button,ImageButton,ListView,View
布局:线性布局
事件:监听事件
数据存储:SharedPrefenrences,SQLite存储
Activity和Intent

2.数据存储设计

2.1 SharedPrefenrences/SQLite存储介绍

SharedPrefenrences :

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
SharedPreferences提供了java常规的Long、Int、String等类型数据的保存接口。 [SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。
提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
文件存储
文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中,因而它比较适合用于存储一些简单的文本数据或者二进制数据。如果你想使用文件存储的方式来保存一些较为复杂的文本数据,就需要定义一套自己的格式规范以方便将数据从文件中重新解析出来。
Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。这个方法有两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,(文件的位置是默认 存储到/data/data/packagename/files/目录下的)第二个参数就是文件的操作模式,主要有两种模式可选:MODE_PRIVATE和 MODE_APPEND,其中MODE_PRIVATE是默认的操作模式,表示当指定文件已存在,所写入的内容将会覆盖源文件中的内容,而MODE_APPEND则表示如果该文件已存在,就往文件里追加内容,不存在就创建新文件

SQLite存储

①SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标准SQL语法,还遵循ACID(数据库事务)原则,无需账号,使用起来非常方便!
②但是在很多情况下, 文件并不一定是有效的,如多线程并发访问是相关的;app要处理可能变化的复杂数据结构等等! 比如银行的存钱与取钱!使用前两者就会显得很无力或者繁琐,数据库的出现可以解决这种问题, 而Android又给我们提供了这样一个轻量级的SQLite,为何不用?
③SQLite支持五种数据类型:NULL,INTEGER,REAL(浮点数),TEXT(字符串文本)和BLOB(二进制对象) 虽然只有五种,但是对于varchar,char等其他数据类型都是可以保存的;因为SQLite有个最大的特点:你可以各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么,比如你 可以在Integer类型的字段中存放字符串,当然除了声明为主键INTEGER PRIMARY KEY的字段只能够存储64位整数! 另外, SQLite 在解析CREATE TABLE 语句时, 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息如下面语句会忽略 name字段的类型信息:CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

2.2数据表结构

给出使用的数据库的逻辑结构,需要说明各字段属性及含义

Id:作为主键,自带生成
Word:进行存储备忘录的信息
SharedPrefenrences代码


```java
SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedP.edit();
int num=sharedP.getInt("number", 0);
num++;
editor.putInt("number", num);
editor.commit();

数据库封装代码:

```java
package com.example.coursedesign;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBOpenHelper extends SQLiteOpenHelper {
    final String CREATE_TABLE_SQL="create table myTable(_id integer primary key autoincrement,word text)";
    public static final String name = "myDb";
    public static final String table_name = "myTable";
    public DBOpenHelper( Context context, String name,  SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, null, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_SQL);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.i("生活小助手","--版本更新"+oldVersion+"-->"+newVersion);
    }
    public List<String> readAll () {
        List<String> allCommodities = new ArrayList<String>();
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery("select * from myTable order by _id",null);
        if(cursor.moveToFirst()) {
            do {
                String title = cursor.getString(cursor.getColumnIndex("word"));
                allCommodities.add(title);
            }while (cursor.moveToNext());
        }
        cursor.close();
        return allCommodities;
    }
    public boolean addMyCollection(String s) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("word",s);
        db.insert(table_name,null,values);
        values.clear();
        return true;
    }
    public void delete(String word) {
        SQLiteDatabase db = this.getWritableDatabase();
        if(db.isOpen()) {
         db.delete(table_name,"word=?",new String[]{word+""});
            db.close();
        }
    }

    public boolean update (String word,String wordP) {
        SQLiteDatabase db = this.getWritableDatabase();
        String sql = "update  myTable set word=? where word=?";
        String[] obj = new String[]{word,wordP};
        db.execSQL(sql,obj);
        return true;
    }
}

3.具体编码及截图

3.1 主界面

通过listView来显示所有的备忘录,界面含有主页,刷新,添加,个人中心的功能。

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/blue"
    tools:context="com.example.coursedesign.MainActivity" >

    <ListView
        android:id="@+id/main_list"
        android:layout_width="match_parent"
        android:layout_height="370dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1.19" />

    <View
        android:id="@+id/view1"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_marginTop="50dp"
        android:background="@drawable/green" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib_home_page"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/home" />

        <View
            android:id="@+id/view2"
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/ib_add_product"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/add" />

        <View
            android:id="@+id/view3"
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/refresh"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/refresh" />

        <View
            android:id="@+id/view4"
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/ib_personal_center"
            android:layout_width="50dp"
            android:layout_height="55dp"
            android:layout_weight="0.84"
            android:class="lazy" data-src="@drawable/person" />
    </LinearLayout>

   </LinearLayout>

后台代码:


package com.example.coursedesign;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
   ImageButton buttonRefresh;
   ImageButton  buttonAdd;
   ImageButton buttonHome;
   ImageButton buttonPerson;
   DBOpenHelper dbHelper;
   List<String> listString=new ArrayList<String>();
   ListView listview;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		dbHelper = new  DBOpenHelper(getApplicationContext(),DBOpenHelper.name , null, 1);
		buttonRefresh=(ImageButton) findViewById(R.id.refresh);//刷新
		listview=(ListView) findViewById( R.id.main_list);
		 buttonRefresh.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	                listString = dbHelper.readAllCommodities();
	                ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,listString);
	                listview.setAdapter(adapter);
	            }
	        });
		 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {///List
	            @Override
	            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
	                String s = (String) listview.getAdapter().getItem(position);
	                Bundle bundle1 = new Bundle();
	                bundle1.putInt("position",position);
	                bundle1.putString("title",s);
	                Intent intent = new Intent(MainActivity.this, ListViewActivity.class);
	                intent.putExtras(bundle1);
	                startActivity(intent);
	            }
	        });
		 buttonAdd=(ImageButton) findViewById(R.id.ib_add_product);//Add
		 buttonAdd.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	            	  Intent intent = new Intent(MainActivity.this, AddActivity.class);
	                  startActivity(intent);
	            }
	        });
		 buttonHome=(ImageButton) findViewById(R.id.ib_home_page);//home
		  buttonHome.setOnClickListener(new View.OnClickListener() {
		            @Override
		            public void onClick(View v) {
		            	 Toast.makeText(getApplicationContext(), "已在主页", Toast.LENGTH_SHORT).show();
		            }
		        });
		  buttonPerson=(ImageButton) findViewById(R.id.ib_personal_center);///person
		  buttonPerson.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	            	 Intent intent = new Intent(MainActivity.this, PersonActivity.class);
	                  startActivity(intent);
	            	 Toast.makeText(getApplicationContext(), "进入个人中心", Toast.LENGTH_SHORT).show();
	            }
	        });
		 
	}

	
}

3.2 各功能模块

添加备忘录:
界面
通过SQLite数据实现对备忘录的添加。

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:orientation="vertical"
     android:background="@drawable/blue"
    tools:context="com.example.coursedesign.AddActivity" >
   <View
        android:layout_width="match_parent"
        android:layout_height="50dp" />
    <EditText
        android:id="@+id/add_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入添加的信息" />
     <View
        android:layout_width="match_parent"
        android:layout_height="120dp" />
    <Button 
        android:id="@+id/add_button"
         android:layout_gravity="center_horizontal"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提交"
        />

</LinearLayout>

后台代码:


package com.example.coursedesign;

import android.app.Activity;
import android.app.backup.SharedPreferencesBackupHelper;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AddActivity extends Activity {

	Button button;
	EditText editText;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_add);
		button=(Button) findViewById(R.id.add_button);
		editText=(EditText) findViewById(R.id.add_text);
		 button.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	               String s=editText.getText().toString();
	               DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
	               if(s!=null){
	            	   if(dbHelper.addMyCollection(s)){
	            		   Toast.makeText(getApplicationContext(), "添加成功", Toast.LENGTH_SHORT).show();
	            		   SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
	            		   SharedPreferences.Editor editor=sharedP.edit();
	            		   int num=sharedP.getInt("number", 0);
	            		   num++;
	            		   editor.putInt("number", num);
	            		   editor.commit();
	            		   finish();
	            	   }
	            	   else{
	            		   Toast.makeText(getApplicationContext(), "添加失败", Toast.LENGTH_SHORT).show();
	            	   }
	               }
	            }
	        });
	}


}

删除和修改备忘录:
通过SQLite数据实现对备忘录的修改和删除。

界面:

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/blue"
    tools:context="com.example.coursedesign.ListViewActivity" >

    <EditText
        android:id="@+id/listView_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="你好"
         />
    <View
        android:layout_width="match_parent"
        android:layout_height="120dp" />
    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:layout_gravity="center_horizontal">
          <View
        android:layout_width="20dp"
        android:layout_height="wrap_content" />
    <Button 
        android:id="@+id/listView_updata"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改"
        />
     <View
        android:layout_width="90dp"
        android:layout_height="wrap_content" />
        <Button 
        android:id="@+id/listView_delete"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="删除"
        />
    </LinearLayout>
    

</LinearLayout>

后台代码:


package com.example.coursedesign;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class ListViewActivity extends Activity {
    EditText text;
    Button button_up;
    Button button_delete;
    int position;
    String str;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_list_view);
		text=(EditText) findViewById(R.id.listView_text);
		button_delete=(Button) findViewById(R.id.listView_delete);
		button_up=(Button) findViewById(R.id.listView_updata);
		Bundle b = getIntent().getExtras();
        if( b != null) {
        	str=b.getString("title");
        	//Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
        	  text.setText(str.toCharArray(), 0, str.length());
            position = b.getInt("position");
        }
        button_delete.setOnClickListener(new View.OnClickListener() {//delete
            @Override
            public void onClick(View v) {
               DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
               dbHelper.deleteMyCollection(str);
               Toast.makeText(getApplicationContext(), "删除成功", Toast.LENGTH_SHORT).show();
               finish();
            }
        });
        button_up.setOnClickListener(new View.OnClickListener() {//delete
            @Override
            public void onClick(View v) {
            	String wordNew="";
             wordNew=text.getText().toString();
               DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
               if(dbHelper.updateUser(wordNew, str)){
               Toast.makeText(getApplicationContext(), "更新成功", Toast.LENGTH_SHORT).show();
               finish();
               }
            }
        });
	}


}

进入页面:
通过使用Intent进行Activity的启动。
界面:

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
        android:orientation="vertical"
    android:background="@drawable/note2"
    tools:context="com.example.coursedesign.FirstActivity" >
   <View   android:layout_width="150dp"
       android:layout_height="79dp"/>
   <TextView android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="欢迎来到生活小助手"
        android:layout_gravity="center_horizontal"
       android:textColor="#68EE68"
       android:textSize="24dp"
       android:textStyle="bold"/>
     <View   android:layout_width="150dp"
       android:layout_height="79dp"/>
   <Button
       android:id="@+id/Loading"
          android:layout_width="70dp"
       android:layout_height="40dp"
       android:background="@drawable/green1"
       android:text="进入"
        android:layout_gravity="center_horizontal"
       android:textColor="#F24FFF"
       android:textSize="30dp"
       android:textStyle="bold"
       tools:ignore="MissingConstraints" />

</LinearLayout>

后台代码:


package com.example.coursedesign;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class FirstActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_first);
		Button button=(Button) findViewById(R.id.Loading);
		 button.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	            	  Intent intent = new Intent(FirstActivity.this, MainActivity.class);
	                  startActivity(intent);
	            }
	        });
	}

	
}

个人中心
备忘录数量的统计以及软件的说明
界面:

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/blue"
    tools:context="com.example.coursedesign.PersonActivity" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="@drawable/green1"
        android:gravity="center_horizontal"
        android:text="个人中心"
        android:textSize="20sp"
        android:textStyle="italic" />
        <View
            android:layout_width="2dp"
            android:layout_height="0dp"  />
    <TextView
        android:layout_width="match_parent"
         android:layout_marginTop="12dp"
        android:layout_height="25dp"
        android:background="@drawable/yellow"
        android:gravity="center_horizontal"
        android:text="您的记录总共为"
        android:textSize="20sp"
        android:textStyle="italic" />

    <TextView
        android:id="@+id/person_text"
        android:layout_width="match_parent"
        android:layout_height="89dp"
        android:background="@drawable/yellow"
        android:gravity="center_horizontal"
        android:text="50"
        android:textSize="85sp"
        android:textStyle="italic" />

    <Button
        android:id="@+id/person_button"
        android:layout_width="140dp"
        android:layout_height="38dp"
          android:layout_marginTop="16dp"
        android:layout_gravity="center_horizontal"
         android:background="@drawable/white"
        android:text="软件介绍" />
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/green" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/person_home_page"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/home" />

        <View
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/person_add_product"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/add" />

        <View
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/person_refresh"
            android:layout_width="58dp"
            android:layout_height="55dp"
            android:class="lazy" data-src="@drawable/refresh" />

        <View
            android:layout_width="2dp"
            android:layout_height="55dp"
            android:background="@drawable/green" />

        <ImageButton
            android:id="@+id/person_personal_center"
            android:layout_width="50dp"
            android:layout_height="55dp"
            android:layout_weight="0.84"
            android:class="lazy" data-src="@drawable/person" />
    </LinearLayout>

</LinearLayout>

后台代码:


package com.example.coursedesign;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class PersonActivity extends Activity {

	TextView text;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_person);
		 SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);   
		   int num=sharedP.getInt("number", 0);
		   Integer num2=(Integer)num;
		   text=(TextView) findViewById(R.id.person_text);
		   text.setText(num2.toString());
		   Button button=(Button) findViewById(R.id.person_button);
		   button.setOnClickListener(new View.OnClickListener() {
	            @Override
	            public void onClick(View v) {
	            	Intent intent = new Intent(PersonActivity.this, AppActivity.class);
	                  startActivity(intent);
	            }
	        });
	}

	
}

软件说明:
对软件的进一步说明。
界面:

在这里插入图片描述

界面代码:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/blue"
    tools:context="com.example.coursedesign.AppActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开发目的:"
        android:textSize="20sp"
        android:layout_marginTop="5dp"
        android:layout_marginStart="5dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="它是帮助你忘记的事情,在每个人忙碌的生活当中,人的记忆是有限的,备忘录就是让你把多个事情都能记起的东西。"
        android:textSize="15sp"
        android:layout_marginStart="5dp"
        android:layout_marginEnd="5dp"
        android:layout_marginTop="5dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开发人员:"
        android:textSize="20sp"
        android:layout_marginTop="5dp"
        android:layout_marginStart="5dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="何昊"
        android:textSize="15sp"
        android:layout_marginTop="5dp"
        android:layout_marginStart="5dp"/>
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="系统版本:"
        android:textSize="20sp"
        android:layout_marginTop="5dp"
        android:layout_marginStart="5dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="android app v1.0.0"
        android:textSize="15sp"
        android:layout_marginTop="5dp"
        android:layout_marginStart="5dp"/>
    <Button
        android:id="@+id/person_button"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:text="返回"
        android:textSize="20sp"
         android:layout_marginTop="5dp"
        android:layout_gravity="center_horizontal"/>

</LinearLayout>

后台代码:


package com.example.coursedesign;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class AppActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_app);
		Button button = (Button) findViewById(R.id.person_button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
	}
}

4 总结

谈一下发现的问题与收获:

  1. 开始时使用相对布局进行设计,以为可以通过简单的拖拽就可以实现布局的设计,后面发现在控件变多的时候,变得很麻烦,并且由于界面的选择,eclipse这边的界面与模拟器的界面并不相同。后来使用线性布局进行设计。
  2. 之前上课学过openOrCreateDatabase方法与SQLitreOpenHelper类,存在有一些不明白的问题,通过这次课设,掌握了这些知识。
  3. 对时间规划不足,使得项目结束时间有点晚。

到此这篇关于Android毕业设计备忘录APP的文章就介绍到这了,更多相关Android备忘录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android毕业设计备忘录APP

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java设计模式之备忘录模式

这篇文章介绍了Java设计模式之备忘录模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

行为型设计模式 - 备忘录模式详解

|0基本介绍备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态2|0模式结构Originator(发起者):记录当前的状态,负责创
2023-06-04

Java设计模式初识之备忘录模式详解

备忘录设计模式(MementoDesignPattern)也叫作快照(Snapshot)模式,主要用于实现防丢失、撤销、恢复等功能。本文将通过示例为大家介绍一些备忘录模式的定义与使用,需要的可以参考一下
2022-11-13

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录