项目大作业之日记本系统2

本文提出了日记本系统的一些改进想法,包括自动保存功能、修改密码保护隐私、支持多方式备份和转移、大文本粘贴复制以及日记分类功能,旨在提升用户体验和数据安全性。
摘要由CSDN通过智能技术生成
题目       日记本系统2          
本次主要实现日记本系统的内部的增删改查,分享等功能。
一:运行效果图如下:
1.登录成功后界面:

2.创建日记界面:

3.删除或修改日记界面:

4.分享日记界面:

二:具体实现源代码如下:
1.创建日记界面实现:
createDairy.java如下:
package meng.systemdairy;

import meng.systemdairy.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class createDairy extends Activity {

	private EditText mTitleText;
	private EditText mBodyText;
	private Long mRowId;
	private DiaryDbHelper mDbHelper;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setTitle("日记操作");
		mDbHelper = new DiaryDbHelper(this);
		mDbHelper.open();
		setContentView(R.layout.createdairy);

		mTitleText = (EditText) findViewById(R.id.title);
		mBodyText = (EditText) findViewById(R.id.body);
        Button backButton=(Button)findViewById(R.id.backmenu);
        Button lookButton=(Button)findViewById(R.id.look);
		Button confirmButton = (Button) findViewById(R.id.confirm);
        
		mRowId = null;
		// 每一个intent都会带一个Bundle型的extras数据。
		Bundle extras = getIntent().getExtras();
		if (extras != null) {
			String title = extras.getString(DiaryDbHelper.KEY_TITLE);
			String body = extras.getString(DiaryDbHelper.KEY_BODY);
			mRowId = extras.getLong(DiaryDbHelper.KEY_ROWID);

			if (title != null) {
				mTitleText.setText(title);
			}
			if (body != null) {
				mBodyText.setText(body);
			}
		}
        backButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent=new Intent();
				intent.setClass(createDairy.this, newMenu.class);
				startActivity(intent);
			}
		});
        lookButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent=new Intent();
				intent.setClass(createDairy.this, lookDairy.class);
				startActivity(intent);
			}
		});
		confirmButton.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				String title = mTitleText.getText().toString();
				String body = mBodyText.getText().toString();
				if ("".equals(title)||"".equals(body)) {
					Toast.makeText(createDairy.this, "^_^不要忘记日记题目和内容哦!^_^", 5).show();
					return;
				}else if (mRowId != null) {
					mDbHelper.updateDiary(mRowId, title, body);
				} else{
				mDbHelper.createDiary(title, body);
				Intent mIntent = new Intent();
				setResult(RESULT_OK, mIntent);

			}
			}
		});
	}
}
2.日记的修改和删除界面的实现:
DiaryDbHelper.java如下:
package meng.systemdairy;

import java.util.Calendar;

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

public class DiaryDbHelper {

	public static final String KEY_TITLE = "title";
	public static final String KEY_BODY = "body";
	public static final String KEY_ROWID = "_id";
	public static final String KEY_CREATED = "created";
	private DatabaseHelper mDbHelper;
	private SQLiteDatabase mDb;

	private static final String DATABASE_CREATE = "create table diary (_id integer primary key autoincrement, "
			+ "title text not null, body text not null, created text not null);";

	private static final String DATABASE_NAME = "database";
	private static final String DATABASE_TABLE = "diary";
	private static final int DATABASE_VERSION = 1;

	private final Context mCtx;

	private static class DatabaseHelper extends SQLiteOpenHelper {

		DatabaseHelper(Context context) {
			super(context, DATABASE_NAME, null, DATABASE_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			db.execSQL(DATABASE_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			db.execSQL("DROP TABLE IF EXISTS diary");
			onCreate(db);
		}
	}

	public DiaryDbHelper(Context ctx) {
		this.mCtx = ctx;
	}

	public DiaryDbHelper open() throws SQLException {
		mDbHelper = new DatabaseHelper(mCtx);
		mDb = mDbHelper.getWritableDatabase();
		return this;
	}

	public void closeclose() {
		mDbHelper.close();
	}

	public long createDiary(String title, String body) {
		ContentValues initialValues = new ContentValues();
		initialValues.put(KEY_TITLE, title);
		initialValues.put(KEY_BODY, body);
		Calendar calendar = Calendar.getInstance();
		String created = calendar.get(Calendar.YEAR) + "年"
				+ calendar.get(Calendar.MONTH) + "月"
				+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
				+ calendar.get(Calendar.HOUR_OF_DAY) + "时"
				+ calendar.get(Calendar.MINUTE) + "分";
		initialValues.put(KEY_CREATED, created);
		return mDb.insert(DATABASE_TABLE, null, initialValues);
	}

	public boolean deleteDiary(long rowId) {

		return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
	}

	public Cursor getAllNotes() {

		return mDb.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_TITLE,
				KEY_BODY, KEY_CREATED}, null, null, null, null, null);
	}

	public Cursor getDiary(long rowId) throws SQLException {

		Cursor mCursor =

		mDb.query(true, DATABASE_TABLE, new String[]{KEY_ROWID, KEY_TITLE,
				KEY_BODY, KEY_CREATED}, KEY_ROWID + "=" + rowId, null, null,
				null, null, null);
		if (mCursor != null) {
			mCursor.moveToFirst();
		}
		return mCursor;

	}

	public boolean updateDiary(long rowId, String title, String body) {
		ContentValues args = new ContentValues();
		args.put(KEY_TITLE, title);
		args.put(KEY_BODY, body);
		Calendar calendar = Calendar.getInstance();
		String created = calendar.get(Calendar.YEAR) + "年"
				+ calendar.get(Calendar.MONTH) + "月"
				+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
				+ calendar.get(Calendar.HOUR_OF_DAY) + "时"
				+ calendar.get(Calendar.MINUTE) + "分";
		args.put(KEY_CREATED, created);

		return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
	}
}
3.查看日记界面的实现:
lookDairy.java如下:
package meng.systemdairy;

import meng.systemdairy.R;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

/**
 * @author 
 * 
 */
public class lookDairy extends ListActivity {
	private static final int ACTIVITY_CREATE = 0;
	private static final int ACTIVITY_EDIT = 1;

	private static final int INSERT_ID = Menu.FIRST;
	private static final int DELETE_ID = Menu.FIRST + 1;

	private DiaryDbHelper mDbHelper;
	private Cursor mDiaryCursor;
	// int x;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_diary);
		setTitle("日记查看  操作提示:直接点击日记列表");
		mDbHelper = new DiaryDbHelper(this);
		mDbHelper.open();
		renderListView();

	}

	private void renderListView() {
		mDiaryCursor = mDbHelper.getAllNotes();
		startManagingCursor(mDiaryCursor);
		String[] from = new String[]{DiaryDbHelper.KEY_TITLE,
				DiaryDbHelper.KEY_CREATED};
		int[] to = new int[]{R.id.text1, R.id.created};
		SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
				R.layout.lookdairy, mDiaryCursor, from, to);
		setListAdapter(notes);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		menu.add(0, INSERT_ID, 0, "新建日记");
		menu.add(0, DELETE_ID, 0, "返回Menu");
		return true;
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
			case INSERT_ID :
				createDiary();
				return true;
			case DELETE_ID :
				Intent intent = new Intent(this, newMenu.class);
				startActivity(intent);
		}
		return super.onMenuItemSelected(featureId, item);
	}

	private void createDiary() {
		Intent i = new Intent(this, createDairy.class);
		startActivityForResult(i, ACTIVITY_CREATE);
	}

	// @Override
	// 需要对position和id进行一个很好的区分
	// position指的是点击的这个ViewItem在当前ListView中的位置
	// 每一个和ViewItem绑定的数据,肯定都有一个id,通过这个id可以找到那条数据。
	protected void onListItemClick(ListView l, View v, final int position,
			final long id) {
		super.onListItemClick(l, v, position, id);
		AlertDialog.Builder builder = new AlertDialog.Builder(lookDairy.this);
		builder.setMessage("你选择的是?");
		builder.setTitle("欢迎");
		builder.setPositiveButton("修改", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Cursor c = mDiaryCursor;
				c.moveToPosition(position);
				Intent i = new Intent();
				i.setClass(lookDairy.this, createDairy.class);
				i.putExtra(DiaryDbHelper.KEY_ROWID, id);
				i.putExtra(DiaryDbHelper.KEY_TITLE, c.getString(c
						.getColumnIndexOrThrow(DiaryDbHelper.KEY_TITLE)));
				i.putExtra(DiaryDbHelper.KEY_BODY, c.getString(c
						.getColumnIndexOrThrow(DiaryDbHelper.KEY_BODY)));
				startActivityForResult(i, ACTIVITY_EDIT);
				dialog.dismiss();

			}

			
		});
		builder.setNegativeButton("删除",
				new android.content.DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						mDbHelper.deleteDiary(getListView()
								.getItemIdAtPosition(position));
						renderListView();
						dialog.dismiss();

					}
				});

		builder.create().show();

		// show(x);//弹出对话框
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode,
			Intent intent) {
		super.onActivityResult(requestCode, resultCode, intent);
		renderListView();
	}

}
4.菜单键的实现:
newMenu.java如下:
package meng.systemdairy;


import meng.systemdairy.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class newMenu extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.menu);
		setTitle("致敬!");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		
		// TODO Auto-generated method stub
		menu.add(0, 1, 0, "创建日记");
		menu.add(0, 2, 0, "查看日记");
		menu.add(0, 3, 0, "删除日记");
		menu.add(0, 4, 0, "分享日记");
		return super.onCreateOptionsMenu(menu);
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		Intent intent;
		switch (item.getItemId()) {
		case 1:
			// 添加日记
			intent = new Intent(this, createDairy.class);
			startActivity(intent);
			break;

		case 2:
			// 查看日记
			intent= new Intent(this, lookDairy.class);
			startActivity(intent);
			break;
		case 3:
			intent= new Intent(this, lookDairy.class);
			startActivity(intent);
			break;
		case 4:
			intent= new Intent(this, Share.class);
			startActivity(intent);
			break;
		}
		

		return super.onOptionsItemSelected(item);
	}
	@Override
	protected void onDestroy() {
		finish();
		// TODO Auto-generated method stub
		super.onDestroy();
	}
}
5.分享日记界面的实现:
Share.java如下:
package meng.systemdairy;

import meng.systemdairy.R;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class Share extends ListActivity {
	private static final int ACTIVITY_EDIT = 1;

private static final int INSERT_ID = 0;

private static final int DELETE_ID = 1;

private static final int ACTIVITY_CREATE = 0;


	private DiaryDbHelper DbHelper;
	private Cursor DiaryCursor;
	private lookDairy xiedongisxiesongliang;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_diary);
		setTitle("日记分享 操作提示:直接点击日记列表");
		DbHelper = new DiaryDbHelper(this);
		DbHelper.open();
		renderListView();

	}
	private void renderListView() {
		 DiaryCursor = DbHelper.getAllNotes();
		startManagingCursor(DiaryCursor);
		String[] from = new String[]{DiaryDbHelper.KEY_TITLE,
				DiaryDbHelper.KEY_CREATED};
		int[] to = new int[]{R.id.text1, R.id.created};
		SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
				R.layout.lookdairy, DiaryCursor, from, to);
		setListAdapter(notes);
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		menu.add(0, INSERT_ID, 0, "新建日记");
		menu.add(0, DELETE_ID, 0, "返回Menu");
		return true;
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
			case INSERT_ID :
				createDiary();
				return true;
			case DELETE_ID :
				Intent intent = new Intent(this, newMenu.class);
				startActivity(intent);
		}
		return super.onMenuItemSelected(featureId, item);
	}

	private void createDiary() {
		Intent i = new Intent(this, createDairy.class);
		startActivityForResult(i, ACTIVITY_CREATE);
	}
	
	// @Override
	// 需要对position和id进行一个很好的区分
	// position指的是点击的这个ViewItem在当前ListView中的位置
	// 每一个和ViewItem绑定的数据,肯定都有一个id,通过这个id可以找到那条数据。
	protected void onListItemClick(ListView l, View v, final int position,
			final long id) {
		super.onListItemClick(l, v, position, id);
		AlertDialog.Builder builder = new AlertDialog.Builder(Share.this);
		builder.setMessage("你选择的是?");
		builder.setTitle("欢迎");
		builder.setPositiveButton("网络分享", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Cursor c = DiaryCursor;
				c.moveToPosition(position);
				Intent intent = new Intent(Intent.ACTION_SEND); 
				intent.setType("text/plain"); 
				intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); 
				intent.putExtra(Intent.EXTRA_TEXT,c.getString(c
					.getColumnIndexOrThrow(DiaryDbHelper.KEY_BODY)));  
				intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
				startActivity(Intent.createChooser(intent, getTitle())); 

				dialog.dismiss();

			}

			// @Override
			
		});
		builder.setNegativeButton("短信发送",
				new android.content.DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						Cursor c = DiaryCursor;
						Uri uri=Uri.parse("smsto:");
						Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
						//						Context c;
						intent.putExtra("sms_body", c.getString(((Cursor) c)
								.getColumnIndexOrThrow(DiaryDbHelper.KEY_BODY)));
						startActivity(intent);
						dialog.dismiss();

					}
				});
		
		builder.create().show();

		// show(x);//弹出对话框
	}
}
三:.xml文件
1.createdairy.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/createdairy">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Title"
            android:padding="2px" />
        <EditText
            android:id="@+id/title"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/content" />
    <EditText
        android:id="@+id/body"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:scrollbars="vertical"
        android:gravity="top" />
    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="5dip">
        <Button
            android:id="@+id/confirm"
            android:text="@string/save"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        <Button
            android:id="@+id/look"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="查看 " />
        <Button
            android:id="@+id/backmenu"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="返回菜单  " />
    </LinearLayout>
</LinearLayout>
2.list_diary.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list">
    <ListView
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/android:empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="您还没有开始写日记呢!点击下边的Menu按钮开始写日记吧^_^" />
</LinearLayout>
3.lookdairy.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/row"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="30px"
        android:maxWidth="200dip"
        android:textSize="22sp"
        android:layout_marginTop="10dip"
        android:text="第一组第一项" />
    <TextView
        android:id="@+id/created"
        android:layout_width="wrap_content"
        android:layout_height="35px"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="10dip"
        android:text="2016年12月20号" />
</RelativeLayout>
4.main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/main"
    android:weightSum="1"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="196dp"
        android:layout_weight="0.04" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:weightSum="1"
        android:layout_width="146dp"
        android:layout_height="wrap_content">
        <TextView
            android:text="@string/tvname"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_width="25dp" />
        <EditText
            android:id="@+id/etUid"
            android:singleLine="true"
            android:layout_gravity="center_vertical"
            android:layout_height="wrap_content"
            android:layout_width="102dp" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:weightSum="1"
        android:layout_height="wrap_content"
        android:layout_width="149dp">
        <TextView
            android:layout_width="13dp"
            android:text="@string/tvPwd"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.41"></TextView>
        <EditText
            android:id="@+id/etPwd"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:layout_width="101dp">
            <requestFocus></requestFocus>
        </EditText>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:weightSum="1">
        <Button
            android:text="@string/Enter"
            android:id="@+id/xiedong"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_width="67dp"></Button>
            <Button
            android:text="注册  "
            android:id="@+id/xiemo"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_width="67dp"></Button>
    </LinearLayout>
</LinearLayout>
5.menu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/menu">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击下边的Menu按钮对日记进行操作吧!^_^" />
</LinearLayout>
四:

对于本系统的一些要改进的想法

尽管日记本系统已经做完了,但是我还是对于这个系统有些不满意,一些功能的实现由于我这个菜鸟的技术原因无法实现,实在是才疏学浅,以后还要多加努力才行啊。下面我说一下我对于这个系统的想法吧:

1.      自动保存功能:当用户在写日记时,因为一些事情的需要退出本系统,这个时候可以自动的将已经写好的日记保存,让用户再一次打开的时候不用重新输入。

2.      修改密码功能:为了保护用户的隐私,增加修改密码功能,防止用户的账号密码泄露而导致一些自己的隐私被他人知晓。

3.      支持多种方式的备份和转移:在需要的时候,将本系统的日记内容备份到其他的存储设备中,有备无患。

4.      支持大文本的粘贴复制:一些用户在其他如见随手记载的事情,如果再一次手打到本系统的时候,难免会有一些的麻烦,应该增加粘贴复制的功能,可以将已经写好的日记转移到本系统或者由本系统转移到其他地方,而且格式保持不变。

5.      支持分类:应该增加分类功能,可以使用户按照自己指定的分类方法,也可以按照系统自带的时间分类等方法,对于不同的事情,分类到不一样的分组里。




实验目的 综合运用基于android平台的智能移动终端软件开发技术。 实验内容 设计实现一个智能移动终端软件应用,至少包含3个相互关联的应用功能,具有较好的用户界面和实际的应用价值以及合理的功能模块结构。 设计方案 实现一个日记本。分为登录界面、日记列表界面、日记内容界面、日记查找界面、日记新建界面。使用SQLiteDatabase数据库存储日记内容。 首先要有一个LoginActivity,输入密码,点击按钮,判断密码是否正确后,用intent跳转到MainActivity。 MainActivity主要包括activity_main里列表的关联,实现点击列表时跳转到show_content_diary日记内容界面,启动ShowContentDiary活动。同时,MainActivity还实现了菜单的初始化,使用上下文菜单,包括搜索和新建功能。MainActivity里还有Set_refresh_data函数,用于初始化和删除日记之后刷新列表。 Note是一个日记信息类,类似于结构体。里面有set和get方法。 NoteAdapter类继承了ArrayAdapter,相当于是Note数组对象的适配器,用来包装Note数据,很好地实现数据和界面分离。 AddNewDiary这个类用于新建一则日记,使用add_new_diary.xml界面,这里没有实现图片添加功能,只是用Toast说明,除此之外,会自动写好时间、日期,只需要添加标题和内容即可。 要创建一个数据库的帮助类,这样使用起SQLiteDatabase就方便了。这和sql查询语言类似,创建、查询、删除……
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值