题目: 日记本系统 1
一:功能需求及技术可行性分析
日记本是我们从小到大一直在我们身边的好朋友,它记载着你的每一天,包括你的衣食住行,包含着你的喜怒哀乐,承载着你成长的气息。可以说,日记本是最了解你的“人”,它一直在默默倾听着你的心声。但是随着时间的流逝和科技的进步,纸质版的日记本已经不能满足于人们的需求,携带不方便,保密性差等缺点一点点的暴露出来,而我的这款基于安卓手机开发的一款日记本系统可以解决这一点,它主要有以下几个功能:
1. 系统基于安卓手机,满足人们现在一个手机就可以解决一切的需求。
2. 日记本系统设有注册和登录功能,每个人第一次登录需要先注册自己的账号密码,每次登录都需要自己的账号密码才能进入自己的日记本空间,这解决了日记的保密性,只要你记住自己的密码,就再也不用担心自己的心灵活动被别人看见了!
3. 系统登录成功之后,有四个小功能,即创建日记、查看日记、删除日记和分享日记,在查看日记里面增加了修改日记内容和删除日记内容,致力于使人们享受到和纸质版日记本一样的感觉。
4. 在分享日记里面,有两个选项,可以选择使用网络分享,比如你手机上的QQ和微信等,也可以选择使用短信分享。
5. 当然了,本系统也有很多不完善的东西,只是初期做出了一些模型,在里面并没有添加东西。
虽然看上去只有几个小小的功能点,但如果想要全部实现这些功能却需要用到UI、网络、数据存储、等技术,对于我这个才接触安卓开发没多久的小菜鸟来说,做起来还是非常有难度的,经过我的平时的学习和咨询身边的同学,才勉强做出来这个简单的日记本系统。
二:运行效果图:
1.登录注册页面:
三:具体实现源代码如下:
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>