导读
1.自定义一个AlertDialog
2.添加一条数据
正文
记事本应当有一个添加功能,这里我打算在右上角放一个item,然后点击这个item弹出一个对话框,输入名称,点击确定跳转到另一个activity进行添加数据。
public override bool OnCreateOptionsMenu(IMenu menu) { var m1 = menu.Add(0, 1, 0, "新建"); m1.SetShowAsActionFlags(ShowAsAction.IfRoom | ShowAsAction.WithText); return true; }
首先我们添加了一个item
就是右上角的新建按钮,然后我们需要自定义一个AlertDialog,这样我们才能从AlertDialog中获取edittext的值
首先我们新建一个名为EditText的布局文件,往里面添加一个edittext,设置ID为EditTitle
然后我们重写OnOptionsItemSelected
public override bool OnOptionsItemSelected(IMenuItem item) { switch (item.ItemId) { case 1: { Android.App.AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog ad = builder.Create(); ad.SetTitle("请输入标题"); ad.SetView(new EditText(this)); LayoutInflater inflater = LayoutInflater.From(this); View layout = inflater.Inflate(Resource.Layout.EditText, null); ad.SetView(layout); ad.SetButton("完成", (s, e) => { EditText orderBookNum = (EditText)layout.FindViewById(Resource.Id.EditTitle); var intent = new Intent(this, typeof(Addnote)); intent.PutExtra("title", orderBookNum.Text); StartActivity(intent); this.Finish(); }); ad.SetButton2("取消", (s, e) => { }); ad.Show(); }break; } return true; }
这里我们把获取到的值传递到了Addnote活动中(添加事件)
最后效果图
获取到edittitle的值之后,我们进入addnote活动中进行添加数据
重写OnCreateOptionsMenu并添加事件
public override bool OnCreateOptionsMenu(IMenu menu) { var m1 = menu.Add(0, 1, 0, "保存"); m1.SetShowAsActionFlags(ShowAsAction.IfRoom | ShowAsAction.WithText); return true; } public override bool OnOptionsItemSelected(IMenuItem item) { switch (item.ItemId) { case 1: { Anote(); } break; case Android.Resource.Id.Home: { var intent = new Intent(this, typeof(Activity1)); StartActivity(intent); this.Finish(); } break; } return true; }
这里我写了一个Anote方法,就是添加数据的方法
void Anote() { DateTime now = DateTime.Now; Sqlite dbHelper = new Sqlite(this); SQLiteDatabase db = dbHelper.WritableDatabase; ContentValues ncv = new ContentValues(); var title = Intent.GetStringExtra("title"); ncv.Put("title", title); ncv.Put("context", edtext.Text); ncv.Put("time", now.ToString("yyyy-MM-dd")); long id = db.Insert("NoteBooksql", null, ncv); var intentAct2 = new Intent(this, typeof(Activity1)); StartActivity(intentAct2); if (id >= 0) { Toast.MakeText(this, "添加成功", ToastLength.Short).Show(); } else { Toast.MakeText(this, "添加失败", ToastLength.Short).Show(); } this.Finish(); }
接收传递过来的edittitle值,insert一下,>=0则添加成功,-1则添加失败
最后效果图