当前位置: 首页 > news >正文

.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化

我们知道资源被注册到R.java我们通过R.java就可以读取到界面中的组件。跟我们.net一样,通过ID来读取组件

知识点:

  1. 通过R.java读取组件
  2. MainActivity.java通过findViewById方法查找组件
  3. 在Layout中用@string查找字符串,这个跟我们MVC中国际化基本相识,通过xml这种资源引用进行中文和英文切换
  4. 加入中文和英文本地化

双击fragment_main.xml设计视图,拖入一个Button和一个TextView,并双击进入xml代码

添加android:onClick,我也是靠猜的,程序代码都有相似性,特别是java与javascript。不过我们还是查找帮助文档比较好

输入android:onClick="SetTextView"

那么这段跟javascript一样,后台必须有SetTextView方法在监听这个事件

打开我们的MainActivity.java加入方法

public void SetTextView(View v)
    {
        TextView tv=(TextView)findViewById(R.id.textView1);
        tv.setText("点击了按钮我要变了!");
    }

运行看下效果,做了个lable字体设置好像没什么好炫耀的

 

 OK。现在我们来看看怎么进行中英版本的切换!

我们的Button名字是Button,当手机系统设置为中文时候,应该是按钮字样,英文时候显示Button

现在打开Res-----values----string.xml 添加一个属性 (这里等于.net国际化的res资源文件。有健值对应的xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">HelloWorld</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="Btn_Name">Button</string>
</resources>

<string name="Btn_Name">Button</string>

 在Values创建文件夹values-zh-rCN并复制values下的string.xml  到values-zh-rCN把Button改成按钮

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">HelloWorld</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="Btn_Name">按钮</string>
</resources>

回到layout把button的text从Button改成@string/Btn_Name

其实这里的@就是R的意思。也就是R.String.Btn_Name我们可以打开R.java观察到Btn_Name

运行并打开切换系统的版本运行模拟器里面的CustomLocale切换

 

相关文章:

  • 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件...
  • IOS 基于APNS消息推送原理与实现(JAVA后台)--转
  • asp.net解决:当前上下文中不存在名称“Session”
  • thinkphp问题记录phpQuery使用错误
  • CTreeCtrl 父结点联动子结点CheckBox
  • Subversion--Version Control
  • SQLPlus命令详细说明
  • ubuntu1304无法启动桌面系统的问题和解决
  • Java反射----数组操作
  • ubuntu12编译openwrt
  • Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得...
  • CSS选择器各个浏览器兼容性大全
  • Redis调试
  • HDU 4089 Activation 概率DP
  • Android 百度地图定位(手动+自动) 安卓开发教程
  • “大数据应用场景”之隔壁老王(连载四)
  • 2019.2.20 c++ 知识梳理
  • Angularjs之国际化
  • IDEA常用插件整理
  • Python十分钟制作属于你自己的个性logo
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue小说阅读器(仿追书神器)
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 飞驰在Mesos的涡轮引擎上
  • 回顾 Swift 多平台移植进度 #2
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 强力优化Rancher k8s中国区的使用体验
  • 如何胜任知名企业的商业数据分析师?
  • 使用parted解决大于2T的磁盘分区
  • 一起参Ember.js讨论、问答社区。
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​flutter 代码混淆
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #etcd#安装时出错
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (done) 两个矩阵 “相似” 是什么意思?
  • (MATLAB)第五章-矩阵运算
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (译)2019年前端性能优化清单 — 下篇
  • (转)LINQ之路
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net IE10 _doPostBack 未定义
  • .net Signalr 使用笔记
  • .net反编译工具
  • .NET下的多线程编程—1-线程机制概述
  • .NET正则基础之——正则委托
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明
  • [JavaEE系列] wait(等待) 和 notify(唤醒)
  • [JavaWeb学习] Spring Ioc和DI概念思想