目前刷新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()方法来创建控件。

转自:链接

实现Activity刷新 (转)的更多相关文章

  1. 高德地图搜索提示获取信息回传activity刷新ui(二)

    应用场景: 在主activity中点击进入到另一个activity搜索提示,获取经纬度,点确定返回到主activity,虽然说需求很奇葩,但是遇到了没办法.. 主要包含两部分,搜索提示+activit ...

  2. 实现Activity刷新(转)

    目前刷新Acitivity,只想到几种方法.仅供参考,如果您有更好的方法,请赐教. 程序界面: 点击refresh view可以刷新界面,点击write content可以在EditText中自动写入 ...

  3. activity结束之后刷新之前的activity的内容

    点击添加按钮之后-----弹出一个新的activity--------在新的activity将数据输入保存之后,关闭当前的activity回到之前的activity刷新内容 实现:使用onActivi ...

  4. Fragment源码分析

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/53171248 本文出自: [HansChen的博客] 概述 Fragment表示 A ...

  5. TabHost刷新activity的方法

    在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次 ...

  6. android项目中刷新activity界面

    android项目中在sqlite数据库插入/更新/删除数据后: 1. 刷新当前activity界面数据(手动刷新): 在activity类下新增一个refresh()方法: /** * 刷新, 这样 ...

  7. activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI

    今天遇到挺纠结的问题,由于产品设计的问题,技术上涉及到activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI ...

  8. Android 实现在Activity中操作刷新另外一个Activity数据列表

    做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表. 想了想,找了两种方 ...

  9. 如何从fragment跳到activity再从activity返回(finish()方法返回)刷新fragemnt页面

    代码改变世界 如何从fragment跳到activity再从activity返回(finish()方法返回)刷新fragemnt页面 广播方法实现Fragment页面刷新 fragment中重写onA ...

随机推荐

  1. 一个Try多个Catch需要注意的事项

    一个程序包含一个try块和两个catch块,两个catch子句都有能力捕捉一个try块发出的异常,若两个catch子句次序不同时程序结果会发生变化吗? 一个try块后有两个catch块,这很正常,因为 ...

  2. POJ 1258

    http://poj.org/problem?id=1258 今天晚上随便找了两道题,没想到两道都是我第一次碰到的类型———最小生成树.我以前并没有见过,也不知道怎么做,然后就看书,思路很容易理解 但 ...

  3. sql语句操作

    1.1 SQL语句 1.1.1 什么是SQL SQL:Structured Query Language, 结构化查询语言. 特点: * 非过程性语言: * 过程性语言特点:一个语句需要依赖上面的几条 ...

  4. 手动安装python后,交互模式下退格键乱码

    没有安装readline相关的模块 yum install readline readline-devel 再重新变异安装python就可以了

  5. Python~第三方模块

    第三方库还有MySQL的驱动:MySQL-python,用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2 模块搜索路径 Windows下: 双\\   sys.path.ap ...

  6. 快速入门GreenDao框架并实现增删改查案例

    大家的项目中不可避免的使用到SQLite,为此我们要花费心思编写一个增删改查框架.而一个好的ORM框架则能够给我们带来极大的方便,今天给大家讲解一个非常火热的ORM-GreenDao. 基本概念 Gr ...

  7. 关于java中Double类型的运算精度问题

    标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改    关键字     Java 浮点数 精确计算   问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...

  8. 【leetcode】Max Points on a Line(hard)☆

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...

  9. HDU 4950 Monster

    题目链接 题意:有一个怪物的血量为h,人攻击怪物,每回合可以杀掉a滴血,再回b滴血,k个回合之后人会休息一回合,即人不攻击而怪物回b滴血,问能否杀死.翻译过来就是给定一个数h,每轮可以先减a再加b,k ...

  10. IOS - socket 编程初体验

    #import "ViewController.h" @interface ViewController () <NSStreamDelegate, UITextFieldD ...