Android如何在文本中添加空格
发表于|更新于
|总字数:76|阅读时长:1分钟|浏览量:
| 名称 | 编号 | 描述 |
|---|---|---|
|   |   | 不会被合并的空格,长度与常规空格相同 |
| &ensp |   | 全角空格,长度为半个中文字符 |
| &emsp |   | 全角空格,长度为一个中文字符 |
| \u3000 | \u3000 | 全角空格,长度为一个中文字符 |
文章作者: 丨小小丶
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
相关推荐
2021-03-24
Android的事件分发机制
当一个或多个手指触摸屏幕时,通常有四种类型的事件: ACTION_DOWN:按下屏幕时发生,表示触摸事件开始,他是第一个发生的事件 ACTION_UP:手指抬起,表示触摸事件结束 ACTION_MOVE:手指按下屏幕,并且手指移动的距离超过了某个阈值 ACTION_CANCLE:事件已取消(不是由于用户的行为引起) 这些信息都被包含在MotionEvent中,ACTION_DOWN和ACTION_UP只有一个,而ACTION_MOVE可能存在多个,所谓的事件分发就是队MotionEvent事件分发的过程,就是找到一个能处理MotionEvent的View,过程由Activity开始,传到ViewGroup,最终再传到View,响应过程从上到下,从子到父。 当我们点击一个按钮时,这个按钮可能被包含在ViewGroup中,事件会先从Activity中开始分发进行,如果Activity要自己处理,那么这个按钮就得不到事件信息,如果Activity是进行分发,那么接下来包裹这个按钮的ViewGroup就会得到处理,同样如果这个ViewGroup要进行拦截,那么这个按钮也得不到响应...
2021-07-15
Android实现两次返回退出应用
共有两种方法实现此功能 方法一:重写onBackPressed()方法 重写onBackPressed()方法,执行exit()方法,在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在 Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了Back键,则再次执行exit方法,此时isExit的值已为 true,则会执行退出的方法。 public class MainActivity extends AppCompatActivity {private static boolean isExit = false; // 标识是否退出private static Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExi...

2021-03-26
Android线程池
Android中常见的线程池有四种,分别是FixedThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor。 FixedThreadPool线程池是通过Executors的new FixedThreadPool方法来创建,特点是该线程池中的线程数量是固定的,即使线程处于闲置的状态,它们也不会被回收,除非线程池被关闭,当所有的线程都处于活跃状态时,新任务就处于队列中等待线程来处理。 FixedThreadPool只有核心线程,没有非核心线程 CachedThreadPool线程池是通过Executors的new CachedThreadPool来创建的它是一种线程数量不固定的线程池,它没有核心线程,只有非核心线程,当线程池中的线程都处于活跃状态,就会创建新的线程来处理新的任务,否则就会利用闲置的线程来处理新的任务。线程池中的线程都有超时机制,时长为60s,超过这个时间,闲置的线程就会被回收。这种线程池适合处理大量并且耗时较少的任务。 ScheduledThreadPool线程池是通过Executo...
2021-06-25
Android Crash问题
Android在API21(Android5.0)以下,crash后会直接退出整个应用,但是在API21(Android5.0)以上系统时,会遵循以下原则重启: 包含service:如果程序crash的时候运行着service,那么系统会重新启动service。 不包含service,但是当前栈中包含两个Activity,A->B,如果B crash,那么系统会重启A。 不包含service,但是当前栈中包含三个Activity,A->B->C,如果C crash,那么系统会重启B,并且A仍然存在,即可以从重启的B back到A。
2021-06-10
String.format()的使用
当有一个字符串有一部分是固定另外一部分是需要变化的时候,最好使用String.format()来处理这种情况。 格式为String.format(String format, Object ... args) 例如在www.xxx.com/s?index=后面需要添加参数时 String url = "www.xxx.com/s?index=%d" String format = String.format(url,100) System.out.println(format) 执行后即可得到结果www.xxx.com/s?index=100 如在字符串中有多个变化的部分的时候则可以使用以下方法: 例如需要显示距离过年还有xx天xx时xx秒 可以在string.xml中声明 <string name="delay_time">距离过年还有%1$d天%2$d时%3$d秒</string> 在代码中的使用: mTextView.setText(String.format(getResources().ge...
2021-09-14
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题 出现原因 在activity被回收后恢复时,activity被重新实例化了,但是附属在该activity中的fragment并没有被销毁,在activity的onSaveInstanceState里会将fragment的状态保存起来,当activity重新创建时,其中的fragment还是之前的,而父activity已经被回收了,此时调用getActivity会返回null导致崩溃。 解决方法 只需要在fragmentactivity被系统回收的时候不保存fragment的状态即可,即重写fragmentactivity的onSaveInstanceState并注释掉super.onSaveInstanceState方法,代码如下: @SuppressLint("MissingSuperCall")@Overrideprotected void onSaveInstanceState(@NotNull Bundle outState) { // super...
