简易记事本实现与分析(三)主界面

一、Notepadv3 整体代码结构

 

有前面的辅助类,在主界面就可以直接调用了,Notepadv3 继承ListActivity类下面是主干代码,每个函数的实现参见源码。(源码连接

12

3捕获

public class Notepadv3 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 NotesDbAdapter mDbHelper;

public void onCreate(Bundle savedInstanceState)

private void fillData()

public boolean onCreateOptionsMenu(Menu menu)

public boolean onMenuItemSelected(int featureId, MenuItem item)

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)

public boolean onContextItemSelected(MenuItem item)

private void createNote()

protected void onListItemClick(ListView l, View v, int position, long id)

protected void onActivityResult(int requestCode, int resultCode, Intent intent)



二、函数功能分析

这里只分析个别函数,菜单的相关函数就不再多说了

1、在 onCreate(Bundle savedInstanceState)做两件事,调用函数fillData()初始化界面的记录显示,注册上下文菜单按钮

 

2.filldata(),自定义函数:从数据库中取得所有的记录,显示到list的各个item中:

private void fillData() 
{
  // 从数据库获取所有的行记录,并且创建item集合用以存放
  Cursor notesCursor = mDbHelper.fetchAllNotes();
  startManagingCursor(notesCursor);
  // 从集合里取出每条记录的标题,放入string数组
  String[] from = new String[] { NotesDbAdapter.KEY_TITLE,NotesDbAdapter.KEY_BODY };
  // 用于绑定对应数据显示的布局textview,位于单独的notes_row.xml中
  int[] to = new int[] { R.id.text1,R.id.content };
  // 创建SimpleCursorAdapter,绑定到外观xml文件,参数分别对应数据和具体的layout
  SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to);
  setListAdapter(notes);
}



 

创建记录createNote(),通过intent调用NoteEdit,在新的页面内才会真正的创建,供用户填写记事的内容

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



 

 

 

三、

所有的编码工作到这就完成了,值得一提的事draw9patch工具的使用,官方NotePad案例没有使用,但是这个工具很好,虽然本使用后貌似也没用好,园子里已经有有园友详细接扫了它的使用,不再赘述。

源码连接

 

完。。。

posted @ 2012-02-24 09:09  小文字  阅读(2080)  评论(4编辑  收藏  举报