领先的中文IT技术网站    IT技术从现在起飞

飞诺旗下: 技术社区 | 在线电子书 | 在线试题 | 资源下载 | 飞诺搜索 | 技术博客
用户名: 密   码:
   飞诺网 加入收藏
飞诺网 Linux 新闻频道 开发频道 系统频道 服务器 网络频道 网络安全 Java频道 C/C++ PHP开发 电子书 资源下载 社 区 博 客 在线试题
操作系统 Linux Windows xp Windows 2003 Windows 2000/NT DOS Mac OS X Vista FreeBSD Solaris SCO UNIX AIX Windows 2008
编程开发 JAVA C/C++ C++ VC C语言 VB C# Delphi Foxpro 汇编 shell编程 游戏开发 软件工程师 WEB开发 PHP ASP Asp.net JSP AJAX CGI JavaScript HTML CSS 数据库 MSSQL Mysql Oracle Access Sybase DB2 sql2005 Office Word Excel Powerpoint Wps 认证考试 二级C语言 三级网络 程序员 网络工程师 思科认证

您当前的位置:飞诺网 >> linux >> Linux技术文章

个人android之notepad作品-(1)创建、删除、更新记事簿

www.firnow.com    时间 : 2008-12-22  作者:佚名   编辑:辉辉 点击:   [ 评论 ]


这个实例主要是对SDK中的Notepadv2Solution的修改和完善,因为本人在使用该sample发现一些错误和缺陷,主要是空指针异常。
(1)Notepadv1.java:

package com.google.android.demo.notepad1;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.Menu.Item;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class Notepadv1 extends ListActivity {
 public static final int INSERT_ID = Menu.FIRST;
 private static final int EXIT_ID = 0;
 private static final int DELETE_ID = Menu.FIRST + 1;
 private static final int ACTIVITY_EDIT = 1;
 private static final int ACTIVITY_CREATE = 0;
 private NotesDbAdapter mDbHelper;
 private Cursor c;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.notepad_list);
        mDbHelper = new NotesDbAdapter(this);
        mDbHelper.open();
        fillData();
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
     boolean result = super.onCreateOptionsMenu(menu);
        menu.add(0, INSERT_ID, R.string.menu_insert);
        menu.add(0, EXIT_ID, R.string.exit_notes);
        menu.add(0, DELETE_ID, R.string.menu_delete);
        return result;
    }
    @Override
    public boolean onOptionsItemSelected(Item item) {
     switch (item.getId()) {
        case INSERT_ID:
            createNote();
            return true;
        case EXIT_ID:
         finish();
         return true;
        case DELETE_ID:
         mDbHelper.deleteNote(getListView().getSelectedItemId());
         fillData();
         return true;
        }
        return super.onOptionsItemSelected(item);
    }
   
    private void createNote() {
     Intent i = new Intent(this, NoteEdit.class);
        startSubActivity(i, ACTIVITY_CREATE);
    }
   
    private void fillData() {
        // Get all of the notes from the database and create the item list
        c = mDbHelper.fetchAllNotes();
        startManagingCursor(c);
        String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
        int[] to = new int[] { R.id.text1 };
       
        // Now create an array adapter and set it to display using our row
        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
        setListAdapter(notes);
    }
   
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
     super.onListItemClick(l, v, position, id);
       
        c.moveTo(position);
        Intent i = new Intent(this, NoteEdit.class);
        i.putExtra(NotesDbAdapter.KEY_ROWID, id);
        i.putExtra(NotesDbAdapter.KEY_TITLE, c.getString(
                c.getColumnIndex(NotesDbAdapter.KEY_TITLE)));
        i.putExtra(NotesDbAdapter.KEY_BODY, c.getString(
                c.getColumnIndex(NotesDbAdapter.KEY_BODY)));
        startSubActivity(i, ACTIVITY_EDIT);
    }
   
    @Override
    protected void onActivityResult(int requestCode, int resultCode, String data, Bundle extras) {
        super.onActivityResult(requestCode, resultCode, data, extras);
       
        switch(requestCode) {
        case ACTIVITY_CREATE:
         if(extras == null)
          break;
         
            String title = extras.getString(NotesDbAdapter.KEY_TITLE);
            String body = extras.getString(NotesDbAdapter.KEY_BODY);
           
            mDbHelper.createNote(title, body);
            fillData();
          
            break;
        case ACTIVITY_EDIT:
         if(extras == null)
          break;
            Long rowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
            if (rowId != null) {
                String editTitle = extras.getString(NotesDbAdapter.KEY_TITLE);
                String editBody = extras.getString(NotesDbAdapter.KEY_BODY);
                mDbHelper.updateNote(rowId, editTitle, editBody);
            }
            fillData();
            break;
        }
    }
}

说明:
此activity主要是将为创建notepad做前期工作的,此外还做收尾工作,将从后台接受过来的数据显示出来。
图示:


 
(2)NoteEdit.java:

package com.google.android.demo.notepad1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class NoteEdit extends Activity {
 private EditText mTitleText;
    private EditText mBodyText;
    private Long mRowId;
    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.note_edit);
 1 2 3
如果图片或页面不能正常显示请点击这里
Linux技术文章推荐文章

文章评论