题目:       日记本系统 1         


一:功能需求及技术可行性分析

日记本是我们从小到大一直在我们身边的好朋友,它记载着你的每一天,包括你的衣食住行,包含着你的喜怒哀乐,承载着你成长的气息。可以说,日记本是最了解你的“人”,它一直在默默倾听着你的心声。但是随着时间的流逝和科技的进步,纸质版的日记本已经不能满足于人们的需求,携带不方便,保密性差等缺点一点点的暴露出来,而我的这款基于安卓手机开发的一款日记本系统可以解决这一点,它主要有以下几个功能:

1.      系统基于安卓手机,满足人们现在一个手机就可以解决一切的需求。

2.      日记本系统设有注册和登录功能,每个人第一次登录需要先注册自己的账号密码,每次登录都需要自己的账号密码才能进入自己的日记本空间,这解决了日记的保密性,只要你记住自己的密码,就再也不用担心自己的心灵活动被别人看见了!

3.      系统登录成功之后,有四个小功能,即创建日记、查看日记、删除日记和分享日记,在查看日记里面增加了修改日记内容和删除日记内容,致力于使人们享受到和纸质版日记本一样的感觉。

4.      在分享日记里面,有两个选项,可以选择使用网络分享,比如你手机上的QQ和微信等,也可以选择使用短信分享。

5.      当然了,本系统也有很多不完善的东西,只是初期做出了一些模型,在里面并没有添加东西。

虽然看上去只有几个小小的功能点,但如果想要全部实现这些功能却需要用到UI、网络、数据存储、等技术,对于我这个才接触安卓开发没多久的小菜鸟来说,做起来还是非常有难度的,经过我的平时的学习和咨询身边的同学,才勉强做出来这个简单的日记本系统。

二:运行效果图:

1.登录注册页面:

Android做日记本 android日记本功能_Text

Android做日记本 android日记本功能_xml_02

三:具体实现源代码如下:

1.关于本系统的说明;


about.java如下:
package meng.systemdairy;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class about extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.about);
		setTitle("关于");
		Button jixudengru;
		Button duanxixiedong;
		duanxixiedong=(Button)findViewById(R.id.dunxinmeng);
		duanxixiedong.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Uri uri=Uri.parse("smsto:17862003053");
				Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
				intent.putExtra("sms_body", "手机号可能换,请用QQ联系!");
				startActivity(intent);
			}
		});
	}
}
2.登陆注册页面的实现:
Register.java如下:
package meng.systemdairy;

import java.io.File;

import meng.systemdairy.R;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends Activity{
	/**使用SharedPreferences 来储存与读取数据**/ 
	SharedPreferences mShared = null; 
	/**程序中可以同时存在多个SharedPreferences数据, 根据SharedPreferences的名称就可以拿到对象**/ 
	public final static String SHARED_MAIN = "main"; 
	/**SharedPreferences中储存数据的Key名称**/ 
	public final static String KEY_REGISTERNAME = "registername"; 
	public final static String KEY_REGISTERPASSWORD = "registerpassword"; 

	/**SharedPreferences中储存数据的路径**/ 
	public final static String DATA_URL = "/data/data/"; 
	public final static String SHARED_MAIN_XML = "main.xml"; 

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.register);
		setTitle("^_^ 注册 ^_^");
		Toast.makeText(Register.this,
				"^_^账户密码均不要为空^_^", 5).show();
		Button registButton=(Button)findViewById(R.id.register);
		Button redeleteButton=(Button)findViewById(R.id.registerdelete);
		/**拿到名称是SHARED_MAIN 的SharedPreferences对象**/ 
		mShared = getSharedPreferences(SHARED_MAIN, Context.MODE_PRIVATE); 
		final EditText editRegistername = (EditText)findViewById(R.id.registeretUid); 
		final EditText editRegisterpassword = (EditText)findViewById(R.id.registeretPwd); 
        registButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				mShared = getSharedPreferences(SHARED_MAIN, Context.MODE_PRIVATE); 
				 String registername = mShared.getString(KEY_REGISTERNAME, ""); 
				 String registerpassword = mShared.getString(KEY_REGISTERPASSWORD, ""); 
				// TODO Auto-generated method stub
				if(!("".equals(registername)||"".equals(registerpassword))){
					Toast.makeText(Register.this,
							"^_^你已经创建密码 请查看系统帮助^_^", 5).show();
				}else{
				/**拿到用户输入的信息**/ 
				String registename = editRegistername.getText().toString(); 
				String registepassword = editRegisterpassword.getText().toString(); 
				/**开始保存入SharedPreferences**/ 
				Editor editor = mShared.edit(); 
				editor.putString(KEY_REGISTERNAME, registename); 
				editor.putString(KEY_REGISTERPASSWORD, registepassword); 
				/**put完毕必需要commit()否则无法保存**/ 
				editor.commit(); 
				ShowDialog("密码&&账户保存成功,请保护好你的密码!"); 
				}
			}
		});
        redeleteButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				/**开始清除SharedPreferences中保存的内容**/ 
				Editor editor = mShared.edit(); 
				editor.remove(KEY_REGISTERNAME); 
				editor.remove(KEY_REGISTERPASSWORD); 
				editor.commit(); 
				ShowDialog("清除所有账户&&密码数据成功"); 

			}
		});
	}
	public void ShowDialog(String string) { 
		AlertDialog.Builder builder = new AlertDialog.Builder(Register.this); 		builder.setTitle(string); 
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { 
		public void onClick(DialogInterface dialog, int whichButton) { 
		finish(); 
		} 
		}); 
		builder.show(); 
	}
3.帮助界面
help.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;

public class help extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.help);
		setTitle("^_^ 帮助   ^_^");
	}
	}


1.帮助界面
help.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@drawable/help"
    android:weightSum="1">
    <ListView
        android:id="@+id/listView1"
        android:layout_weight="1.03"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"></ListView>
    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="5dip">
        
        
    </LinearLayout>
</LinearLayout>
2.登陆注册界面
register.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/regist"
    android:weightSum="1">
    <ListView
        android:layout_height="wrap_content"
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_weight="0.45"></ListView>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:weightSum="1"
        android:layout_height="wrap_content" android:layout_width="206dp">
        <TextView
            android:layout_width="13dp"
            android:text="@string/tvname"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" android:layout_weight="0.55"></TextView>
        <EditText
            android:id="@+id/registeretUid"
            android:layout_height="wrap_content"
            android:singleLine="true" android:layout_width="140dp">
            </EditText>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:weightSum="1"
        android:layout_height="wrap_content" android:layout_width="200dp">
        <TextView
            android:layout_width="13dp"
            android:text="@string/tvPwd"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" android:layout_weight="0.56"></TextView>
        <EditText
            android:id="@+id/registeretPwd"
            android:layout_height="wrap_content"
            android:singleLine="true" android:layout_width="137dp">
            <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=" 注册 "
            android:id="@+id/register"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" android:layout_width="78dp"></Button>
        
    </LinearLayout>
    <ListView
        android:layout_height="wrap_content"
        android:id="@+id/listView2"
        android:layout_width="match_parent" android:layout_weight="0.56"></ListView>
         <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="删除所有账户 "
            android:id="@+id/registerdelete"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" android:layout_width="222dp"></Button>
        
    </LinearLayout>
</LinearLayout>
3.关于界面
about.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:weightSum="1"
    android:layout_height="match_parent"
    android:background="@drawable/about">
    <ListView
        android:id="@+id/listView1"
        android:layout_weight="1.03"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"></ListView>
    <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/dunxinmeng"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="短信 " />
    </LinearLayout>
</LinearLayout>