Xamarin.Android 记事本(二)自定义AlertDialog
导读
1.自定义一个AlertDialog
2.添加一条数据
正文
记事本应当有一个添加功能,这里我打算在右上角放一个item,然后点击这个item弹出一个对话框,输入名称,点击确定跳转到另一个activity进行添加数据。
public override bool OnCreateOptionsMenu(IMenu menu)
{
var m1 = menu.Add(, , , "新建");
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 :
{
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(, , , "保存");
m1.SetShowAsActionFlags(ShowAsAction.IfRoom | ShowAsAction.WithText);
return true;
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case :
{
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 >= )
{
Toast.MakeText(this, "添加成功", ToastLength.Short).Show();
}
else
{
Toast.MakeText(this, "添加失败", ToastLength.Short).Show();
} this.Finish();
}
接收传递过来的edittitle值,insert一下,>=0则添加成功,-1则添加失败
最后效果图

Xamarin.Android 记事本(二)自定义AlertDialog的更多相关文章
- xamarin android 实现二维码带logo生成效果
MultiFormatWriter writer = new MultiFormatWriter(); Dictionary<EncodeHintType, object> hint = ...
- Xamarin Android 记事本(三)删改
这篇我就不做太多的说明了,数据操作之前也都举过例子了,这里就直接贴出删除和修改的代码. public override bool OnOptionsItemSelected(IMenuItem ite ...
- 老猪带你玩转android自定义控件二——自定义索引栏listview
带索引栏的listview,在android开发非常普遍,方便用户进行字母索引,就像微信通讯录这样: 今天,我们就从零到一实现这个具有索引栏的listview. 怎么实现这个控件了,我们应当梳理出一个 ...
- 玩转android自定义控件二——自定义索引栏listview
带索引栏的listview,在android开发非常普遍,方便用户进行字母索引,就像微信通讯录这样: 今天,我们就从零到一实现这个具有索引栏的listview. 怎么实现这个控件了,我们应当梳理出一个 ...
- Xamarin.Android 记事本(一)
导读 1.视图及数据库的创建 2.listview数据绑定 3.listview的点击事件 正文 如何创建一个listview,大家可以看这里,基本流程操作是一模一样的,我就不多说了,然后就是新建一个 ...
- [置顶]
xamarin android自定义spinner
以前弄的一个下拉框时自带的spinner,感觉好丑,实际效果实在满足不了基本的UI界面要求,还是自己动手丰衣足食,看了网上关于android中自定义spinner的文章,感觉实现原理还是比较简单,所以 ...
- Xamarin.Android开发实践(二)
原文:Xamarin.Android开发实践(二) 一.准备 开始学习本教程前必须先完成该教程http://www.cnblogs.com/yaozhenfa/p/xamarin_android_qu ...
- [置顶]
xamarin android使用zxing扫描二维码
好久没写了,这片文章篇幅不长,概述一下在xamarin android中用 ZXing.Net.Mobile库扫描二维码读取url的示例.扫码支付,扫码登录,App上各种各样的扫码,好像没个扫码的就有 ...
- xamarin android alertdialog详解
说明一下:学习xamarin android一段时间,准备写一些xamarin android相关的例子,alertdialog也是使用的非常多得空间之一,非常感谢鸟巢上的小猪,我也是看着他写的教程学 ...
随机推荐
- Java面试通关要点
Java面试通关要点 2018-03-23 梁桂钊 占小狼的博客 占小狼的博客 占小狼的博客 微信号 whywhy_zj 功能介绍 Java进阶技术干货.实践分享,跟着狼哥一起学习JVM.性能调优,欢 ...
- 将SSM架构中原来关于springSecurity3.x版本的写法配迁移到SpringBoot2.0框架中出现的问题解决记
迁移过程中关于这个安全框架的问题很麻烦,springBoot自带的stater中的版本是5.0,原来系统有通过实现"org.springframework.security.authenti ...
- OI 数论整理
1.素数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数. 2016 ...
- 济南学习 Day 5 T3 pm
科普一下: φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数.φ(1)= ...
- excel打乱各行的顺序,实现无序随机排列
由于公司做活动,经常会发些激活码过来,为了让激活码能够充分使用,经常要打乱激活码的顺序,百度了下,看了下网上的介绍,还不错,挺实用,记录下来. 具体方法如下: 1.将文本里的内容复制到Excel里的任 ...
- GIL锁、死锁、递归锁、定时器
GIL (Global Interpreter Lock) 锁 '''定义:In CPython, the global interpreter lock, or GIL, is a mutex th ...
- linux下eth0 lo wlan0
参考:http://www.cnblogs.com/see7di/archive/2011/06/17/2239722.html 内容如下: 理解linux下的 eth0,eth1,eth2,lo 网 ...
- Java中的网络基础
先来一张图记录一下大概思路,之后再更新具体的代码实现.基本上来说,前半部分自己会编写一个基于socket编程的多客户端dos聊天服务器,后半部分可以实现与已有的一些服务器(比如www.google.c ...
- DBA总结
HA MHA(1)从宕机崩溃的master保存二进制日志事件(binlog events);(2)识别含有最新更新的slave:(3)应用差异的中继日志(relay log)到其他的slave:(4) ...
- foobar2000播放APE格式音乐的解决办法
要使foobar2000能播放APE格式的音乐需要安装Monkey's Audio Decoder的插件.操作如下: 1.登录官方插件列表,找到Monkey's Audio Decoder插件 官方插 ...