当前位置: 首页 > 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 百度地图定位(手动+自动) 安卓开发教程
  • python3.6+scrapy+mysql 爬虫实战
  • android 一些 utils
  • JavaScript设计模式之工厂模式
  • k8s 面向应用开发者的基础命令
  • Laravel Mix运行时关于es2015报错解决方案
  • mongo索引构建
  • PHP的类修饰符与访问修饰符
  • Python实现BT种子转化为磁力链接【实战】
  • scala基础语法(二)
  • vue的全局变量和全局拦截请求器
  • 测试开发系类之接口自动化测试
  • 基于webpack 的 vue 多页架构
  • 蓝海存储开关机注意事项总结
  • 使用putty远程连接linux
  • 一份游戏开发学习路线
  • python最赚钱的4个方向,你最心动的是哪个?
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​批处理文件中的errorlevel用法
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #控制台大学课堂点名问题_课堂随机点名
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1)svelte 教程:hello world
  • (二)fiber的基本认识
  • (二)Linux——Linux常用指令
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (一)插入排序
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .Net 代码性能 - (1)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .net项目IIS、VS 附加进程调试
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)