目前刷新Acitivity,只想到几种方法。仅供参考,如果您有更好的方法,请赐教。

程序界面:

点击refresh view可以刷新界面,点击write content可以在EditText中自动写入文字。

1. intent

  1. package mark.zhang;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.EditText;
  9. public class RefreshActivityTest extends Activity {
  10. private EditText showInfo = null;
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. showInfo = (EditText) findViewById(R.id.show);
  16. Log.d("mark", "refresh this activity!");
  17. // 获取便于对比启动是哪个Activity
  18. setTitle("taskId:" + this);
  19. // 刷新
  20. findViewById(R.id.button_refresh).setOnClickListener(new OnClickListener() {
  21. @Override
  22. public void onClick(View v) {
  23. refresh();
  24. }
  25. });
  26. // 填写文字
  27. findViewById(R.id.button_write).setOnClickListener(new OnClickListener() {
  28. @Override
  29. public void onClick(View v) {
  30. showInfo.append("you have wrote successfully!\n");
  31. }
  32. });
  33. }
  34. /**
  35. * 刷新
  36. */
  37. private void refresh() {
  38. finish();
  39. Intent intent = new Intent(RefreshActivityTest.this, RefreshActivityTest.class);
  40. startActivity(intent);
  41. }
  42. }

这种方式可以启动很多Activity实例,我们不停的点击refresh view这个按钮,就可以看到打印结果:

所以这种方式,如果没有finish()方法,那么会有很多Activity实例存在。假如你不使用finiish()方法的话,多次点击refresh view这个按钮,再点击手机的返回按钮,就会出现很多activity实例。

2. 调用回调方法onCreate

修改refresh()方法,如下:

  1. /**
  2. * 刷新
  3. */
  4. private void refresh() {
  5. /*finish();
  6. Intent intent = new Intent(RefreshActivityTest.this, RefreshActivityTest.class);
  7. startActivity(intent);*/
  8. onCreate(null);
  9. }

运行App,点击write content多次:

点击refresh view按钮:

可以看出,刷新ok!!!!!
这种方法,只有一个Activity实例。
3. invalidate()

这种方法,行不通,只是拿出来说一说。

  1. /**
  2. * 刷新
  3. */
  4. private void refresh() {
  5. LinearLayout layout = (LinearLayout) findViewById(R.id.ll);
  6. layout.invalidate();
  7. }

4. 重新加载布局文件

这个方法是第二种方法的子集,是一个有Bug的方法。

  1. /**
  2. * 刷新
  3. */
  4. rivate void refresh() {
  5. setContentView(R.layout.main);

点击refresh viiew:

但是,再次点击write content不会有效果。

主要是因为,重新加载xml文件之后,需要再次使用findViewById()方法来创建控件。

转自:链接

转载于:https://www.cnblogs.com/YangBinChina/p/4741769.html

实现Activity刷新 (转)相关推荐

  1. smack+openfire实现Android实时通信(实现大部分基本功能)

    1. 开发环境 smack-4.3.4 openfire-4.6.3 开发工具:AndroidStudio openfire下载及安装: 官网:https://igniterealtime.org/p ...

  2. python xpath语法-Python爬虫:Xpath语法笔记

    DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记 今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意 ...

  3. Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item

    1.添加recycleview依赖 compile('com.android.support:recyclerview-v7:25.1.1') {force = true } 2.item.xml & ...

  4. Android 使用RecyclerView实现(仿微信)的联系人A-Z字母排序和过滤搜索功能

    之前做项目的时候遇到一个需求是实现品牌的字母排序功能,网上的资料很多,但是有一部分有bug,这篇文章是我学习和解决部分bug之后的总结.今天带来的是RecyclerView的A-Z字母排序和过滤搜索功 ...

  5. Android APP切换系统语言

    1.需求 三方APP实现点击切换语言功能(类似于系统Settings中点击语言自动切换) 2.实现 2.1 跳转到系统Settings的语言选择界面,实现功能 跳转代码: Intent intent ...

  6. 理解WebViewClient各方法重写的作用

    创建并设置一个WebViewClient子类,回调对应的方法改变网页内容的呈现方式,比如:网页加载错误回调onReceivedError(),提交表单错误回调onFormResubmission(), ...

  7. Android Studio中的手机通讯录开发

    Android Studio中的手机通讯录,包含功能(按首字母排序,动态添加) 第一次写博客,也刚踏入工作,想着把自己在项目中遇到的问题,以及自己在工作中所做的项目记录下来,方便以后自己查找知识,一开 ...

  8. Android Studio 简要实现蓝牙(Bluetooth)通信(附加作业)

    文章目录 一.项目实现功能 二.项目核心代码 1.简要实现设备蓝牙通信 2.模拟Client 和Server端实现简单的通信. 三.实验项目截图 四.源代码 一.项目实现功能 1.两台设备可以通过蓝牙 ...

  9. BroadcastReceiver onReceive()没有被调用

    代码个功能是在activity中启动service,在service中获取相关数据后广播给activity,activity刷新界面,但是activity中的onReceive怎么也不执行. 说明:使 ...

最新文章

  1. 《科学美国人》评出2019年十大突破性技术
  2. 字符串子串去重之后的个数
  3. c语言 方程改main的值_C语言编程笔记丨编写第一个C语言程序hello world,我教你哇...
  4. EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...
  5. 成员/方法/属性/私有
  6. HOW TO:在 Visual C++ .NET 中从 System::String* 转换为 Char*
  7. 动态规划算法之:最长公共子序列 最长公共子串(LCS)
  8. 怎么判断tcp重组完成_网络工程师(8):TCP为什么可靠
  9. MySQL镜像下载及启动
  10. 移动**21*设置无法接通_手机通话质量不好?你可能只差一步设置!
  11. 凯文米特尼克-《欺骗的艺术》[完整中文版][DOC][PDF]
  12. Linux下本地yum源配置和局域网yum源配置
  13. docker出现问题:You cannot remove a running container 解决方案
  14. 巨头特斯拉的进击之路
  15. Windows11 VMware 此平台不支持虚拟化的 intel vt-x/ept
  16. 华为擎云 W510 鲲鹏 920 24 核工作站使用体验
  17. 力推:无限制下载神器aria2
  18. Android软件开发环境搭建
  19. 【移动安全高级篇】————3、Android系统ShellCode编写
  20. 2018三七互娱前端笔试

热门文章

  1. cocos2d-x 从onEnter、onExit、 引用计数 谈内存泄露问题
  2. [Android疑难杂症]动态改变Background后Padding无效的问题
  3. 管理的最高境界:残缺中的和谐
  4. 浅析Google技术底蕴
  5. python 语料标注_在python中怎么标记文本?
  6. etcd 日志压缩_etcd集群备份和数据恢复以及优化运维
  7. wsl for pycharm vscode
  8. 计科1高雨妍作业(1)
  9. editplus的配置和使用
  10. VK Cup 2012 Qualification Round 2 C. String Manipulation 1.0 字符串模拟