C#安卓自学示例(1)状态栏选项卡

来源:互联网 发布:淘宝网818 编辑:程序博客网 时间:2024/06/05 17:37

开始自学C#的安卓开发,首先声明自学资料都来自:https://developer.xamarin.com/guides/android/user_interface/actionbar/上的例子以及下载的代码进行学习的,因此,此处发表的尽皆属于转载.

其次,看开发工具:为了学习C#的安卓开发,弄个开发工具着实花了很长很长时间和精力,绕了很多弯路和圈子,格式化很多很多次系统盘,走了好多网路,盼望着VS2017正式版尽早发布.

开始准备自学第一例:操作栏选项卡

1.首先下载代码工程压缩包,并解压

2.不急打开下载的工程,因为其是早期版本写的,直接打开会有提示,未必就能在现有的版本中正常运行,同时我也不想麻烦再进行任何配置

3.打开VS,新建一个安卓工程:

3.打开MainActivity.cs,同时打开下载工程文件夹中的Activity1.cs(拖动该文件到VS中即可打开,不用其他的方式打开,用完后直接关闭即可)

复制其中的代码,从如下位置始直到最后一个:

粘贴代码到新建的MainActivity.cs中替换原有的代码

会出现如图所示的提示,不用着急,把剩余的代码复制完成

到最后一个

关闭Activity1.cs保存MainActivity.cs

4.处理提示,用鼠标点击提示并查看弹出内容:Resource.Drawable是寻找文件的,因为还没在新建工程中加入该文件,因此有此提示

打开D:\迅雷下载\HelloTabsICS\Resources\drawable找到该文件,是一个图标,从新建工程对应的文件夹上右击添加现有页添加该图标文件

加入文件后MainActivity.cs中提示的波浪线就会消失,查看整个代码,还会发现还有波浪线,不用急,这是因为尚未补全一些文件、代码、控件,接下来一步步补全

打开新建工程中Main.axml

同时拖动下载文件夹D:\迅雷下载\HelloTabsICS\Resources\layout中的Main.axml到VS中打开,复制和粘贴控件代码

替换掉不要的按钮控件代码

保存所做的更改,做到这一步,就会看到代码文件中的有些提示自动消失了,但是还有一些波浪线未消失,不用急,因为还缺少一些东西未补全,接着拖动打开D:\迅雷下载\HelloTabsICS\Resources\layout中的Tab.axml文件,在新建工程的layout文件夹上添加新建页,创建一个.axml文件并命名为Tab

保存所做更改,再次浏览MainActivity.cs所有代码,此时,所有波浪线都消失了,说明代码和文件都复制成功了,此时,可以运行该工程了,点击运行,第一次运行会出现部署失败的提示,那是因为模拟器未打开的缘故

等待模拟器完全打开

再次点击运行出现提示

请注意,此时版本尚未支持中文字符,因此要修改,用替换功能把整个工程所有文件中的“状态栏选项卡”替换为“HelloTabsICS”

再次运行,还是出现提示,打开工程属性项,修改字符同上,再次运行正常。

删除原新建时的名称如下选中的,修改显示的文件名和图标

至此,有一个需要说明的是,这个版本不支持中文字符,因此,建立工程时就别走我的弯路了,直接字母命名可少走弯路

接下来就要看看原文档都写什么了:

使用选项卡创建选项卡图标代码是针安卓4.0框架运行虽然功能上Android2.3之前版本选项卡本身4.0中已弃用。方式创造一个标签式界面介绍使用操作我们会讨论下一步
操作选项卡
操作包括支持安卓4.0下面屏幕快照添加选项卡式接口显示这种接口示例。(如上运行图)
操作创建标签首先需要NavigationMode(导航模式)属性进行设置支持选项卡活动Android4,操作栏属性设置这样

this.ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;

只有之上属性设置完成,才可以通过调用NewTabmethod操作创建一个选项卡。及选项卡上实例调用SetTextSetIcon方法设置选项卡上的标签文本图标如下所示代码

var tab = this.ActionBar.NewTab ();tab.SetText (tabText);tab.SetIcon (Resource.Drawable.ic_tab_white);

添加选项卡之前需要处理选项卡上选定事件处理程序创建选项卡用户界面视图包含单个TextView控件,并对该控件进行赋值操作︰

class SampleTabFragment: Fragment{               public override View OnCreateView (LayoutInflater inflater,        ViewGroup container, Bundle savedInstanceState)    {        base.OnCreateView (inflater, container, savedInstanceState);        var view = inflater.Inflate (            Resource.Layout.Tab, container, false);//找到Tab.axml即选项卡中设计的用户界面文件        var sampleTextView =            view.FindViewById<TextView> (Resource.Id.sampleTextView);//找到控件                    sampleTextView.Text = "sample fragment text";        return view;    }}

选项卡上选定事件传递事件参数类型TabEventArgs其中包括一个FragmentTransaction属性如下

tab.TabSelected += delegate(object sender, ActionBar.TabEventArgs e){                 e.FragmentTransaction.Add (Resource.Id.fragmentContainer,        new SampleTabFragment ());};

最后通过调用AddTab方法操作添加选项卡

this.ActionBar.AddTab (tab);

有关完整示例请参阅文档示例代码HelloTabsICS项目。(即下载的工程压缩包)

由于水平有限,此篇就写到这里.




0 0