Xamarin.Android之转换,呼叫,查看历史纪录
Xamarin.Android之转换,呼叫,查看历史纪录
功能:能将输入的字母转换成相应的数字。并且能呼叫出去。能查看呼叫的历史纪录。
界面代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="0712-XAMARIN"
android:id="@+id/et"
/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="转换"
android:id="@+id/btnTran"
/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="呼叫"
android:id="@+id/btnCall"
/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="历史纪录"
android:id="@+id/btnCallHistory"
/> </LinearLayout>
主Activity代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget; namespace App3
{
[Activity(Label = "CallActivity", MainLauncher = true, Icon = "@drawable/icon2")]
public class CallActivity : Activity
{
//定义手机集合。
private static readonly List<string> PhoneNumbers = new List<string>();
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Call);
EditText et = FindViewById<EditText>(Resource.Id.et);
Button btnTran = FindViewById<Button>(Resource.Id.btnTran);
Button btnCall = FindViewById<Button>(Resource.Id.btnCall);
btnCall.Enabled = false;
Button btnCallHistory = FindViewById<Button>(Resource.Id.btnCallHistory);
btnCallHistory.Enabled = false;
string translatedNumber = string.Empty; btnTran.Click += (sender, e) =>
{
translatedNumber = PhoneTranslator.ToNumber(et.Text);
//将转换的手机号加入到手机集合中。
PhoneNumbers.Add(translatedNumber);
btnCallHistory.Enabled = true;
if (String.IsNullOrWhiteSpace(translatedNumber))
{
btnCall.Text = "呼叫";
btnCall.Enabled = false;
}
else
{
btnCall.Text = "呼叫" + translatedNumber;
btnCall.Enabled = true;
}
}; btnCall.Click += (sender, e) =>
{
//对话框
var callDialog = new AlertDialog.Builder(this);
callDialog.SetMessage("呼叫" + translatedNumber + "?");
//拨打按钮
callDialog.SetNeutralButton("呼叫", delegate
{
//使用意图拨打电话
var callIntent = new Intent(Intent.ActionCall);
//将需要拨打的电话设置为意图的参数.注意写法
callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber));
StartActivity(callIntent);
});
callDialog.SetNegativeButton("取消", delegate { });
callDialog.Show();
}; btnCallHistory.Click += (sender, e) =>
{
//用意图打开历史纪录的活动
Android.Content.Intent it = new Intent(this, typeof(CallHistoryActiviry));
it.PutStringArrayListExtra("phoneNumbers", PhoneNumbers);
StartActivity(it);
}; }
}
}
通话纪录的Activity代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget; namespace App3
{
[Activity(Label = "CallHistoryActiviry")]
public class CallHistoryActiviry : ListActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var phoneNumbers = Intent.Extras.GetStringArrayList("phoneNumbers") ?? new string[];
//只有当此Activity继承于ListActivity时,整个视图才是列表,才可以这么写。
this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleExpandableListItem1, phoneNumbers);
}
}
}
Xamarin.Android之转换,呼叫,查看历史纪录的更多相关文章
- Xamarin.Android开发
使用 Visual Studio 生成第一个 Xamarin.Android 应用程序,并进一步了解使用 Xamarin 进行 Android 应用程序开发的基础知识.在此过程中,会介绍生成和部署 X ...
- Xamarin. Android实现下拉刷新功能
PS:发现文章被其他网站或者博客抓取后发表为原创了,给图片加了个水印 下拉刷新功能在安卓和iOS中非常常见,一般实现这样的功能都是直接使用第三方的库,网上能找到很多这样的开源库.然而在Xamarin. ...
- Xamarin.Android开发实践(十四)
Xamarin.Android之ListView和Adapter 一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文 ...
- Xamarin.Android Binding篇
前言 趁着失业了,闲着没事儿学习了下Xamarin.Android binding,在以往的开发中,我相信很多人都遇到过binding的坑,也不例外, 我也踩了很多雷,好在认识了个大佬,指导了很多 ...
- xamarin.android 绑定百度地图SDK遇到的问题
在 xamarin.android 绑定项目中,绑定 百度地图的LBS地图SDK,参考 https://developer.xamarin.com/guides/android/advanced_to ...
- Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...
- Xamarin.Android之ListView和Adapter
一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项 ...
- APP并非一个人在战斗,还有API—Xamarin.Android回忆录
前言 一般来说,一个客户端APP并非独立存在的,很多时候需要与服务器交互.大体可分为两方面的数据,常规字符串数据和文件数据,因为这两种数据很可能传输方式不一样,比如字符串之类的数据,使用HTTP协议, ...
- Xamarin.Android之SQLiteOpenHelper
一.前言 在手机中进行网络连接不仅是耗时也是耗电的,而耗电却是致命的.所以我们就需要数据库帮助我们存储离线数据,以便在用户未使用网络的情况下也可以能够使用应用的部分功能,而在需要网络连接的功能上采用提 ...
随机推荐
- 一步一图:从SQLSERVER2005中导出insert语句
1.为什么要导出insert语句,我电脑装的是SQL Server Express免费版的,服务器上装的是正式版,在服务器上备份的数据库文件在本机上还原的时候 因为版本不一样,总是不成功.如果能直接使 ...
- .NET使用ICSharpCode.SharpZipLib压缩/解压文件
SharpZipLib是国外开源加压解压库,可以方便的对文件进行加压/解压 1.下载ICSharpCode.SharpZipLib.dll,并复制到bin目录下 http://www.icsharpc ...
- vim编辑器编程配置
打开/etc/vim/vimrc 添加命令: set cindent "使用C样式的缩进 syntax on "语法高亮 set tabstop=4 set softtabs ...
- Linux manual中命令标号的含义
如果查看Linux manual(例如,执行:man open), 会发现文档中有这样的表达方式:read(2), write(2), lseek(2), fcntl(2)等,括号中的数值表达什么含义 ...
- DOS终端不能使用JAVA命令
DOS 终端 java 命令OK javac 命令OK java version 命令OK 写了小程序HelloWorld 测试 ,文件名HelloWorld.java public class H ...
- 整合jQuery和Prototype遇到的问题.
由于项目要在旧的服务器上面运行,而旧的服务器底层用了Prototype,所以需要解决jQuery和Prototype冲突的问题. 一.$符号冲突问题 这个还是很好解决的. jQuery.noConfl ...
- CSS: word-wrap和word-break
最近修改页面排版的一些问题,发现关于内容分词换行有两个主要的CSS: word-wrap 和 word-break 特别是word-wrap还有个取值break-word,更使得这两个属性容易混淆. ...
- linux路由配置负载均衡
负载平衡ip route add default scope global nexthop via XX.XX.XX.XX dev eth0 weight 1 nexthop via XX.XX.XX ...
- MongoDB 相关下载
MongoDB 下载:http://www.mongodb.org/ 本实例中MongoDB的C#驱动,支持linq:https://github.com/samus/mongodb-csharp M ...
- VS2008无法切换到视图设计器
编写人:CC阿爸 2014-2-17 近来用于干活的笔记本电脑实在太慢了,在领导的安排下,有幸更换了一台配置好的电脑.经过一天的努力,所有之前的开发软件都安装完成了.并且OS从xp升级到win7.SQ ...