承接上节,我们已经有了一个记事本的入口界面。现在我们想添加个记事。
一、首先添加个菜单按钮。
在NotepadActivity中,添加onCreateOptionsMenu函数(默认会生成)。
代码如下:
@Override
publicboolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, 0,R.string.create_note);
return true;
}
关于Menu的add函数参数说明,可以参照Eclipse的提示,或者查Api手册。
定义INSERT_ID:privatestatic final int INSERT_ID = Menu.FIRST;
在values/string.xml里,定义create_note。
这时右键单击工程,Run As --> 1. Android Application,点“Menu”按钮,可以弹出CreateNote菜单了。点击还没有反应。添加onMenuItemSelected函数。
代码如下:
@Override
publicboolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case INSERT_ID:
createNote();
return true;
}
returnsuper.onMenuItemSelected(featureId, item);
}
onMenuItemSelected的参数说明不再赘述。此时有一个自定义函数createNote(),利用它我们创建一个Intent,启动编辑界面。
代码如下:
private void createNote() {
Intent i = newIntent(this, NoteEditActivity.class);
startActivityForResult(i,ACTIVITY_CREATE);
}
关于Intent像我这样的初学者应该好好看一下。
其中的NoteEditActivity.class参数,要求调用一个新的Activity。先放下这个NotepadActivity。
二、创建NoteEditActivity
右键点击包名“com.example.notepad”,选New à class 或者 AndroidActivity都行,后者会少写几行代码。填好名字NoteEditActivity,确定。
继承自Activity类,添加引用文件。
添加onCreate函数。
代码如下:
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_edit);
}
需要我们在layout目录下填加note_edit.xml。
note_eidt.xml代码如下:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/bgcolor"
android:orientation="vertical">
<EditText
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<requestFocus/>
</EditText>
<EditText
android:id="@+id/body"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:inputType="textMultiLine"
android:gravity="top" />
<Button
android:id="@+id/confirm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/confirm"/>
</LinearLayout>
在values/strings.xml中添加confirm,值随意。
这时右键单击工程,Run As --> 1. Android Application,点“Menu”按钮,可以弹出CreateNote,点击,有报错提示。哪里出了问题?请想一下。
下一节是重头戏,数据的存取,谢谢。