Android:国际化弹出框

3.13 风格与主题、国际化

1、应用国际化

应用国际化,通过修改系统语言,应用显示语言跟着改变。

选择Locale,点击>>符号。

创建多个国家,地区strings.xml文件,有一个默认strings.xml文件,各个stirngs.xml中<string>标签中保持一致。

示例:

创建t_language.xml文件,

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:text="@string/header"android:layout_width="match_parent"android:layout_height="wrap_content"></TextView></LinearLayout>

默认strings.xml文件:

<?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">app name</string><string name="header">Local English</string></resources>

国际化中文:

<?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">应用名</string><string name="header">简体中文</string></resources>

国际化繁体中文:

<?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">應用名</string><string name="header">繁体中文</string></resources>

在Activity中直接更新语言,最好在执行setContentView方法之前。

//在Activity中设置语言//获取资源对象Resources resources=getResources();//获取设置对象Configuration configuration= resources.getConfiguration();//获取屏幕参数DisplayMetrics display=resources.getDisplayMetrics();//设置语言configuration.locale=Locale.CHINA;//configuration.locale=Locale.ENGLISH;//configuration.locale=Locale.TAIWAN;resources.updateConfiguration(configuration,display);

设置风格,将layout中重复的样式,整合成一种风格,直接设置。

在src/values/styles.xml中创建<style>

<style name="back"><item name="android:background">#FF003377</item></style>

在layout中设置style,设置style属性,将我们配置的style设置给组件。

<TextViewandroid:text="@string/header"android:layout_width="match_parent"android:layout_height="wrap_content"style="@style/back"></TextView>

2、风格与主题

设置应用主题

在src/values/styles.xml文件创建

<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style>

修改配置文件AndroidManifest.xml

android:theme="@style/AppTheme"

3、弹出对话框

    使用AlertDialog.Builder类,建造者模式创建dialog。

示例1:

//创建open Dialog,public void openDialog(){//AlertDialog.Builder:构建弹窗AlertDialog.Builder builder=new AlertDialog.Builder(this);//设置titlebuilder.setTitle("提示");//设置提示信息builder.setMessage("是否退出");//设置确定按钮builder.setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//关闭AcitivityLanguageActivity.this.finish();//关闭dialog//dialog.dismiss();}});//设置取消按钮builder.setNegativeButton("否",null);//创建弹窗AlertDialog alertDialog=builder.create();//显示弹窗alertDialog.show();}

示例2:

带单选项的弹窗

//单选项弹窗public void openSingleChoiceDialog(){String[] choices=new String[]{"选项1","选项2","选项3"};//创建弹窗//setSingleChoiceItems方法,设置单选项,checkedItem:设置默认选择Item;AlertDialog.Builder builder= new AlertDialog.Builder(this).setTitle("单选").setSingleChoiceItems(choices, 1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(mContext,"选择"+which,Toast.LENGTH_SHORT).show();}}).setPositiveButton("确认",null);AlertDialog alertDialog= builder.create();alertDialog.show();}

示例3:

带多选项的弹窗

//多选框弹窗public void openMultiChoiceDialog(){final String[] choices=new String[]{"选项1","选项2","选项3"};final boolean[] checkeds=new boolean[]{false,false,false};//创建弹窗//setSingleChoiceItems方法,设置单选项,checkedItem:设置默认选择Item;AlertDialog.Builder builder= new AlertDialog.Builder(this);builder.setTitle("多选");builder.setMultiChoiceItems(choices, checkeds, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {checkeds[which]=isChecked;}});builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String text="";for (int i=0;i<choices.length;i++){if (checkeds[i]){text +=choices[i];}}Toast.makeText(mContext,text,Toast.LENGTH_SHORT).show();}});AlertDialog alertDialog= builder.create();alertDialog.show();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/257026.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库⑨_事务(四个属性+回滚提交+隔离级别+MVCC)

目录 1. 事务的概念和四个属性 2. 事务的支持版本 3. 事务的提交方式 4. 事务的相关演示 4.1 常规操作_回滚_提交 4.2 原子性_演示 4.3 持久性_演示 4.4 begin自动更改提交方式 4.5 单条SQL与事务的关系 5. 事务的隔离级别 5.1 四种隔离级别 5.2 查看与设置隔离级别…

mfc110.dll是什么?解决mfc110.dll丢失windows系统常见问题

今天我在打开电脑软件时候&#xff0c;突然报错出现找不到mfc110.dll丢失&#xff0c;无法打开软件&#xff0c;我不知道是什么原因&#xff0c;后面找了很久才找到解决方法&#xff0c;那么mfc110.dll是什么&#xff1f;为什么会丢失和mfc110.dll解决方法是什么&#xff0c;今…

【Web】Redis未授权访问漏洞学习笔记

目录 简介 靶机配置 Redis持久化 Redis动态修改配置 webshell 反弹shell Redis写入反弹shell任务 加固方案 简介 Redis&#xff08;Remote Dictionary Server 远程字典服务器&#xff09;是一个开源的内存数据库&#xff0c;也被称为数据结构服务器&#xff0c;它支持…

CSS介绍

本章目标&#xff1a; CSS概述 三种样式表 简单选择器 复合选择器 盒子模型 常用背景样式 浮动 常用文本样式 伪类样式 列表样式 表格样式 定位 一、CSS概述: CSS&#xff1a;cascading style sheets-层叠样式表 专门负责对网页的美化 二、有三种使用方式&…

《金融人工智能:用python实现ai量化交易》

融合了数学、python、深度学习以及金融知识&#xff0c;是本推荐的好书。请收藏本文&#xff0c;读后再给大学总结。

解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?

作者&#xff1a;饶子昊、杨龙 应用复杂度提升&#xff0c;根因定位困难重重 随着软件技术发展迭代&#xff0c;很多企业软件系统也逐步从单体应用向云原生微服务架构演进&#xff0c;一方面让应用实现高并发、易扩展、开发敏捷度高等效果&#xff0c;但另外一方面也让软件应…

剑指offer——二进制中1的个数

目录 1. 题目描述2. 可能引起死循环的想法3. 改进后的代码4. 给面试官惊喜的代码 1. 题目描述 请实现一个函数&#xff0c;输入一个整数&#xff0c;输出该数二进制表示中1的个数。例如把9表示成二进制位1001&#xff0c;有2位是1&#xff0c;因此如果输入9&#xff0c;该函数输…

idea: 无法创建Java Class文件(SpringBoot)已解决

第一&#xff1a;点击file-->project Sructure... 第二步&#xff1a;点击Moudules 选择自己需要创建java的文件夹&#xff08;我这里选择的是main&#xff09;右键点击Sources&#xff0c;然后点击OK即可 然后就可以创建java类了

Java+SpringBoot实习管理系统探秘

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Vue学习笔记(三)常用指令、生命周期

Vue学习笔记&#xff08;三&#xff09;常用指令 vue指令&#xff1a;html标签上带有 v- 前缀的特殊属性&#xff0c;不同的指令具有不同的含义&#xff0c;可以实现不同的功能。 常用指令&#xff1a; 指令作用v-for列表渲染&#xff0c;遍历容器的元素或者对象的属性v-bind…

MIT-Missing Semester_Topic 3:Editors (Vim) 练习题

文章目录 练习一练习二练习三练习四练习五练习六练习七练习八 本 Topic 的 MIT 讲解网页&#xff08;练习题未给解答&#xff09; 练习一 自行完成 vimtutor。vimtutor 是 Vim 本身附带的一个入门教程&#xff0c;在 shell 中直接输入 vimtutor 便能运行。注意该教程在 8024 大…

书生·浦语大模型第四课作业

基础作业&#xff1a; 构建数据集&#xff0c;使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你的智能小助手&#xff0c;效果如下图所示&#xff0c;本作业训练出来的模型的输出需要将不要葱姜蒜大佬替换成自己名字或昵称&#xff01; 1.安装 # 如果你是在 Int…

三、案例 - MySQL数据迁移至ClickHouse

MySQL数据迁移至ClickHouse 一、生成测试数据表和数据1.在MySQL创建数据表和数据2.在ClickHouse创建数据表 二、生成模板文件1.模板文件内容2.模板文件参数详解2.1 全局设置2.2 数据读取&#xff08;Reader&#xff09;2.3 数据写入&#xff08;Writer&#xff09;2.4 性能设置…

【每日一题】牛客网——链表的回文结构

✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&#xff0c;相互学习…

【JavaEE进阶】 图书管理系统开发日记——陆

文章目录 &#x1f38b;前言&#x1f343;删除图书&#x1f6a9;约定前后端交互接口&#x1f6a9;完善前端代码&#x1f6a9;接口测试 &#x1f38d;批量删除&#x1f6a9;约定前后端交互接口&#x1f6a9;实现后端服务器代码&#x1f388;控制层&#x1f388;业务层&#x1f3…

查看系统进程信息的Tasklist命令

Tasklist命令是一个用来显示运行在本地计算机上所有进程的命令行工具&#xff0c;带有多个执行参数。另外&#xff0c;Tasklist可以代替Tlist工具。通过任务管理器&#xff0c;可以查看到本机完整的进程列表&#xff0c;而且可以通过手工定制进程列表方式获得更多进程信息&…

Vue源码系列讲解——模板编译篇【二】(整体运行流程)

目录 1. 整体流程 2. 回到源码 3. 总结 1. 整体流程 上篇文章中我们说了&#xff0c;在模板解析阶段主要做的工作是把用户在<template></template>标签内写的模板使用正则等方式解析成抽象语法树&#xff08;AST&#xff09;。而这一阶段在源码中对应解析器&…

港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明

港口码头航吊远距离相位测距仪|传感器PHR-120100广泛应用于港口码头、航车、位移监测、形变监测、钢铁、堆垛机、龙门吊等领域。 本文重点介绍港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明。 一、布局介绍 二、按键介绍 三、指示灯说明 四、显示屏操作说明 …

Git中Idea操作git及Git Flow

目录 一、Idea中使用Git 1.idea配置Git和Gitee 2.实践操作 1.将本地项目推送到远程 2.从远程库克隆项目到本地 二、Git Flow 1.什么是Git Flow 2.工作流程 3.实践操作 一、Idea中使用Git 1.idea配置Git和Gitee 第一步&#xff1a;设置git.exe的安装路径 在设置中的…

蓝牙BLE学习-安全

1.基本概念 蓝牙标准规定了5种基本的安全服务 身份验证:根据通信设备的蓝牙地址验证其身份。蓝牙不提供本地用户身份验证。保密性:确保只有授权的设备才能访问和查看传输的数据&#xff0c;防止窃听造成的信息泄露。授权(Authorization):在允许设备使用某项服务之前&#xff…