一些特殊符号&%$等等,如何写在xml,TextView中

本文介绍如何在XML文件中正确显示特殊符号,通过使用ASCII编码来替代直接输入特殊字符的方法,确保XML文件的正确解析。文章提供了常见ASCII十进制交换编码对照表。

http://blog.youkuaiyun.com/z1074971432/article/details/12753539



原文:http://hi.baidu.com/jwq359699768/item/ac7a9bf84ad7fdd242c36ac6


项目中要在string.xml 中显示特殊符号,如@号冒号等,直接写肯定不行啦。。只能考虑使用ASCII码进行显示: 


@号 @ 
:号 : 
空格   


以下为常见的ASCII十进制交换编码: 

&#032;--> <-- 这边是空格 
&#033;-->!<-- 
&#034;-->"<-- xml中需要在前面加入\ 
&#035;-->#<-- 
&#036;-->$<-- 
&#037;-->%<-- 
&#038;-->&<-- 
&#039;-->'<-- 
&#040;-->(<-- 
&#041;-->)<-- 
&#042;-->*<-- 
&#043;-->+<-- 
&#044;-->,<-- 
&#045;-->-<-- 
&#046;-->.<-- 
&#047;-->/<-- 
&#058;-->:<-- 
&#059;-->;<-- 
&#060;--><<-- 
&#061;-->=<-- 
&#062;-->><-- 
&#063;-->?<-- 
&#064;-->@<-- 
&#091;-->[<-- 
&#092;-->-- 
&#093;-->]<-- 
&#094;-->^<-- 
&#095;-->_<-- 
&#096;-->`<-- 
&#123;-->{<-- 
&#124;-->|<-- 
&#125;-->}<-- 
&#126;-->~<-- 
&#160;--> <--这边是空格,在xml首字符中不会被忽略 
&#161;-->¡<-- 
&#162;-->¢<-- 
&#163;-->£<-- 
&#164;-->¤<-- 
&#165;-->¥<-- 
&#166;-->¦<-- 
&#167;-->§<-- 
&#168;-->¨<-- 
&#169;-->©<-- 
&#170;-->ª<-- 
&#171;-->«<-- 
&#172;-->¬<-- 
&#173;-->­<-- 
&#174;-->®<-- 
&#175;-->¯<-- 
&#176;-->°<-- 
&#177;-->±<-- 
&#178;-->²<-- 
&#179;-->³<-- 
&#180;-->´<-- 
&#181;-->µ<-- 
&#182;-->¶<-- 
&#183;-->•<-- 
&#184;-->¸<-- 
&#185;-->¹<-- 
&#186;-->º<-- 
&#187;-->»<-- 
&#188;-->¼<-- 
&#189;-->½<-- 
&#190;-->¾<-- 
&#191;-->¿<-- 
&#192;-->À<-- 
&#193;-->Á<-- 
&#194;-->Â<-- 
&#195;-->Ã<-- 
&#196;-->Ä<-- 
&#197;-->Å<-- 
&#198;-->Æ<-- 
&#199;-->Ç<-- 
&#200;-->È<-- 
&#201;-->É<-- 
&#202;-->Ê<-- 
&#203;-->Ë<-- 
&#204;-->Ì<-- 
&#205;-->Í<-- 
&#206;-->Î<-- 
&#207;-->Ï<-- 
&#208;-->Ð<-- 
&#209;-->Ñ<-- 
&#210;-->Ò<-- 
&#211;-->Ó<-- 
&#212;-->Ô<-- 
&#213;-->Õ<-- 
&#214;-->Ö<-- 
&#215;-->×<-- 
&#216;-->Ø<-- 
&#217;-->Ù<-- 
&#218;-->Ú<-- 
&#219;-->Û<-- 
&#220;-->Ü<-- 
&#221;-->Ý<-- 
&#222;-->Þ<-- 
&#223;-->ß<-- 
&#224;-->à<-- 
&#225;-->á<-- 
&#226;-->â<-- 
&#227;-->ã<-- 
&#228;-->ä<-- 
&#229;-->å<-- 
&#230;-->æ<-- 
&#231;-->ç<-- 
&#232;-->è<-- 
&#233;-->é<-- 
&#234;-->ê<-- 
&#235;-->ë<-- 
&#236;-->ì<-- 
&#237;-->í<-- 
&#238;-->î<-- 
&#239;-->ï<-- 
&#240;-->ð<-- 
&#241;-->ñ<-- 
&#242;-->ò<-- 
&#243;-->ó<-- 
&#244;-->ô<-- 
&#245;-->õ<-- 
&#246;-->ö<-- 
&#247;-->÷<-- 
&#248;-->ø<-- 
&#249;-->ù<-- 
&#250;-->ú<-- 
&#251;-->û<-- 
&#252;-->ü<-- 
&#253;-->ý<-- 
&#254;-->þ<-- 
&#255;-->ÿ<-- 
&#256;-->Ā<-- 
&#257;-->ā<-- 
&#258;-->Ă<-- 
&#259;-->ă<-- 
&#260;-->Ą<-- 
&#261;-->ą<-- 
&#262;-->Ć<-- 
&#263;-->ć<-- 
&#264;-->Ĉ<-- 
&#265;-->ĉ<-- 
&#266;-->Ċ<-- 
&#267;-->ċ<-- 
&#268;-->Č<-- 
&#269;-->č<-- 
&#270;-->Ď<-- 
&#271;-->ď<-- 
&#272;-->Đ<-- 
&#273;-->đ<-- 
&#274;-->Ē<-- 
&#275;-->ē<-- 
&#276;-->Ĕ<-- 
&#277;-->ĕ<-- 
&#278;-->Ė<-- 
&#279;-->ė<-- 
&#280;-->Ę<-- 
&#281;-->ę<-- 
&#282;-->Ě<-- 
&#283;-->ě<-- 
&#284;-->Ĝ<-- 
&#285;-->ĝ<-- 
&#286;-->Ğ<-- 
&#287;-->ğ<-- 
&#288;-->Ġ<-- 
&#289;-->ġ<-- 
&#290;-->Ģ<-- 
&#291;-->ģ<-- 
&#292;-->Ĥ<-- 
&#293;-->ĥ<-- 
&#294;-->Ħ<-- 
&#295;-->ħ<-- 
&#296;-->Ĩ<-- 
&#297;-->ĩ<-- 
&#298;-->Ī<-- 
&#299;-->ī<-- 
&#300;-->Ĭ<-- 
&#301;-->ĭ<-- 
&#302;-->Į<-- 
&#303;-->į<-- 
&#304;-->İ<-- 
&#305;-->ı<-- 
&#306;-->IJ<-- 
&#307;-->ij<-- 
&#308;-->Ĵ<-- 
&#309;-->ĵ<-- 
&#310;-->Ķ<-- 
&#311;-->ķ<-- 
&#312;-->ĸ<-- 
&#313;-->Ĺ<-- 
&#314;-->ĺ<-- 
&#315;-->Ļ<-- 
&#316;-->ļ<-- 
&#317;-->Ľ<-- 
&#318;-->ľ<-- 
&#319;-->Ŀ<-- 
&#320;-->ŀ<-- 
&#321;-->Ł<-- 
&#322;-->ł<-- 
&#323;-->Ń<-- 
&#324;-->ń<-- 
&#325;-->Ņ<-- 
&#326;-->ņ<-- 
&#327;-->Ň<-- 
&#328;-->ň<-- 
&#329;-->ʼn<-- 
&#330;-->Ŋ<-- 
&#331;-->ŋ<-- 
&#332;-->Ō<-- 
&#333;-->ō<-- 
&#334;-->Ŏ<-- 
&#335;-->ŏ<-- 
&#336;-->Ő<-- 
&#337;-->ő<-- 
&#338;-->Œ<-- 
&#339;-->œ<-- 
&#340;-->Ŕ<-- 
&#341;-->ŕ<-- 
&#342;-->Ŗ<-- 
&#343;-->ŗ<-- 
&#344;-->Ř<-- 
&#345;-->ř<-- 
&#346;-->Ś<-- 
&#347;-->ś<-- 
&#348;-->Ŝ<-- 
&#349;-->ŝ<-- 
&#350;-->Ş<-- 
&#351;-->ş<-- 
&#352;-->Š<-- 
&#353;-->š<-- 
&#354;-->Ţ<-- 
&#355;-->ţ<-- 
&#356;-->Ť<-- 
&#357;-->ť<-- 
&#358;-->Ŧ<-- 
&#359;-->ŧ<-- 
&#360;-->Ũ<-- 
&#361;-->ũ<-- 
&#362;-->Ū<-- 
&#363;-->ū<-- 
&#364;-->Ŭ<-- 
&#365;-->ŭ<-- 
&#366;-->Ů<-- 
&#367;-->ů<-- 
&#368;-->Ű<-- 
&#369;-->ű<-- 
&#370;-->Ų<-- 
&#371;-->ų<-- 
&#372;-->Ŵ<-- 
&#373;-->ŵ<-- 
&#374;-->Ŷ<-- 
&#375;-->ŷ<-- 
&#376;-->Ÿ<-- 
&#377;-->Ź<-- 
&#378;-->ź<-- 
&#379;-->Ż<-- 
&#380;-->ż<-- 
&#381;-->Ž<-- 

&#382;-->ž<-- 


Android UI布局一般使用布局管理器、ListView(列表视图)和GridView(网格视图)三种。Android布局管理器可以很方便地控制各个组件的位置和大小,同时根据屏幕大小,管理容器内的控件,自动适配组件在手机屏幕中的位置。 在Android中,Activity(活动)表示一个单一屏幕上的用户界面。例如,电子邮件应用程序主界面可能是一个Activity,显示新的电子邮件列表则是另一个Activity,撰电子邮件又是其它的Activity。如果应用程序有一个以上的Activity,则应该在AndroidManifest.xml配置文件中将其中一个Activity标记为启动Activity以开启应用程序。 在Android中,Intent(意图)是一个将要执行操作的抽象描述。Android的3个核心组件Activity(活动)、Service(服务)和BroadcastReceiver(广播接收器)都需要使用Intent来进行激活。Intent用于相同或者不同应用程序组件间的后期运行时绑定。 1.使用多个Activity实现分别实现加、减、乘、除的计算器,具体包括:通过一个启动Activity布置4个按钮,每个按钮分别触发加、减、乘、除的Activity;然后在打开的Activity中实现与以下例子类似的页面,以一个按钮触发计算输出。 2.先修案例: 下图显示了利用文本框、编辑框、按钮等控件实现一个加法计算器,通过编辑框输入数字,用按钮点击计算,并用文本框显示计算结果。
05-05
明白了!你希望: - **布局XML 中**(不是动态创建); - **通过 `Handler` 添加 `TextView`**; - 并且验证 `OnLayoutChangeListener` 是否会在每次添加时触发。 --- ### ✅ 示例:`activity_main.xml` ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone" android:padding="16dp"> </LinearLayout> ``` --- ### ✅ `MainActivity.kt` 示例代码 ```kotlin class MainActivity : AppCompatActivity() { private lateinit var container: LinearLayout private val handler = Handler(Looper.getMainLooper()) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) container = findViewById(R.id.container) // 添加布局变化监听器 container.addOnLayoutChangeListener { v, l, t, r, b, ol, ot, or, ob -> Log.d("LayoutChange", """ 布局发生变化! 新尺寸: [$l, $t, $r, $b] 旧尺寸: [$ol, $ot, $or, $ob] """.trimIndent()) } // 模拟延迟添加 TextView handler.postDelayed({ addTextView("第一个 TextView") }, 1000) handler.postDelayed({ addTextView("第二个 TextView") }, 2000) handler.postDelayed({ addTextView("第三个 TextView") }, 3000) } private fun addTextView(text: String) { val textView = TextView(this).apply { this.text = text textSize = 18f setPadding(0, 8, 0, 8) } container.addView(textView) // ✅ 可选:强制刷新布局,确保监听器被触发 // container.requestLayout() Log.d("Test", "$text 已添加") } } ``` --- ### 🔍 测试说明 - `LinearLayout` 是从 XML 中加载的,初始状态是 `GONE`。 - 使用 `Handler` 延迟添加 `TextView`,模拟异步添加子视图的场景。 - 每次添加 `TextView` 后,**只有在布局真正发生变化时**才会触发 `OnLayoutChangeListener`。 - **不会自动触发监听器的原因**: - Android 的 `OnLayoutChangeListener` 只有在布局尺寸或位置**实际变化**时才会调用。 - 如果 `LinearLayout` 的宽高没有因为添加 View 而改变(例如父容器高度为 `MATCH_PARENT`),就不会触发监听器。 --- ### ✅ 如何确保每次添加都触发监听器? 在 `addTextView()` 中加上: ```kotlin container.requestLayout() ``` 这样就能**强制走一遍布局流程**,从而确保监听器被调用。 --- ### ✅ 小结 | 行为 | 是否触发监听器 | |------|----------------| | 添加第一个 TextView | ✅ 很可能触发(布局从空变非空) | | 添加第二个 TextView | ❌ 可能不能触发(布局未变化) | | 添加后调用 `requestLayout()` | ✅ 一定触发 | | 容器为 `GONE` 状态 | ❌ 不参与布局流程,监听器可能不触发 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值