android 简单记事本开发(一),android 简单记事本开发(一)

本人刚学android没多久,想写个简单的记事本项目训练一下自己,顺便记录一下自己的学习历程,高手勿喷谢谢,有不足和改进之处还请大家提出意见。

本人习惯完成一个小功能块就记录一下,也方便加深印象。另外,后续编写过程中发现有地方需要新增或者修改的我会特别说明一下。

下面进入正题,首先来说明一下想实现的功能:1.主页面:上面是两个按钮,分别实现管理记事和新建记事的功能,管理记事本打算实现下拉菜单的样式,有三个子菜单,分别为记事详情,记事编辑,记事删除,新建记事涉及页面的跳转,下面是一个listview,并为他添加适配器2.新建记事的页面。最上方一排功能栏,实现改变字体大小,颜色,粗细,种类,插入图片等功能,中间为edittext文本框,最下面为两个按钮,分别实现保存和取消记事的功能(完成点击操作都退出当前的页面,回到主页面)3.数据库存储(存储记事的内容,时间,主题,后期会增加图片等)

1.首先附上主页面的布局,比较简单,没什么特别说明

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#fffff0"

android:orientation="vertical" >

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#3366cc"

android:orientation="horizontal">

android:id="@+id/manage"

android:layout_weight="1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="#3366cc"

android:text="管理"

android:textSize="18sp"

android:textColor="#ffffff"

/>

android:id="@+id/create"

android:layout_weight="1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="#3366cc"

android:text="新建"

android:textSize="18sp"

android:textColor="#ffffff"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="#fffff0"

android:orientation="horizontal">

android:id="@+id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

2.新建记事的页面跳转:

布局文件内容较多,不作复制,后面功能完善我会贴出来的,这里只提一下我犯的一个错误:edittext设置的权重无效,查了一遍又一遍,结果最后发现是父空间没有设置为match_parent,算是一个教训了= =。

下面看一下新建记事的activity:

package com.example.notebook;

import java.text.SimpleDateFormat;

import java.util.Date;

import android.os.Bundle;

import android.app.Activity;

import android.content.ContentValues;

import android.database.sqlite.SQLiteDatabase;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.widget.Button;

import android.widget.EditText;

public class CreateNoteActivity extends Activity implements OnClickListener {

SQLiteDatabase database;

MyHelper myHelper;

EditText text;

Button bt_save,bt_cancel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_create_note);

text=(EditText) findViewById(R.id.write);//获取文本框的路劲

bt_save=(Button) findViewById(R.id.save);

bt_cancel=(Button) findViewById(R.id.cancel);

bt_save.setOnClickListener(this);

bt_cancel.setOnClickListener(this);

myHelper=new MyHelper(this);

database=myHelper.getWritableDatabase();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.create_note, menu);

return true;

}

public void addDB(){  //实现添加数据的功能

ContentValues cv=new ContentValues();//实例化一个contentvalues对象来装载数据

cv.put("content",text.getText().toString() );//添加获取到的文本框的内容

cv.put("time", getTime());//添加时间数据(写一个得到系统当前时间的方法getTime())

database.insert("note",null, cv);

}

public String getTime(){//获取当前系统的时间

SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

Date date=new Date();

String str=dateFormat.format(date);

return str;

}

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

switch(arg0.getId()){

case R.id.save://保存记事

addDB();

finish();//关闭当前activity

break;

case R.id.cancel://取消操作

finish();

break;

default:

break;

}

}

}

这里有两个方法,分别实现添加数据入库和获取当前系统时间的功能,还有两个按钮,分别实现保存退出和取消操作的退出,注释都有,不详细说明了。

3.接下来是数据库的创建:

package com.example.notebook;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

public class MyHelper extends SQLiteOpenHelper{

private static final String DB_NAME="mydata.db";//数据库名称

private static final int version=1;//数据库版本

public MyHelper(Context context) {

super(context, "note", null, version);

}

@Override

public void onCreate(SQLiteDatabase arg0) {

String sql="create table note(id INTEGER PRIMARY KEY AUTOINCREMENT,content text not null,time text not null)";

arg0.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

}

}

也很简单,只涉及到记事的文字内容,时间,并没有完善,后面会增加主题和图片等。

好了,今天暂时就记录这些,虽然简单,还是有些能需要的地方的,发现不足之处希望指出,谢谢!

此处附上一张主页面图片= =,有点丑。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值