簡易記事本實現與分析(三)主介面

來源:互聯網
上載者:User

一、Notepadv3 整體代碼結構

 

有前面的輔助類,在主介面就可以直接調用了,Notepadv3 繼承ListActivity類下面是主幹代碼,每個函數的實現參見源碼。(源碼串連)

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案例沒有使用,但是這個工具很好,雖然本使用後貌似也沒用好,園子裡已經有有園友詳細接掃了它的使用,不再贅述。

源碼串連

 

完。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.