• android中页面的返回刷新


    android中从A activity 打开B activity 操作之后返回A activity,并且A activity状态改变就要用到刷新

    我就介绍一下我开发中最常用的方法

    引用函数 setResult和 onActivityResult处理机制

    实现原理,在第二个Activity的返回事件中返回数据,第一个Activity中重构onActivityResult方法,在重构该方法的事件中,感觉返回的数据,做出不同的处理。以达到自动更新第一个Activity的效应。详细情况参考如下的介绍。当前两个activity,MainAcivity和SecondActivity;

     1 //A MainAcivity的重要代码:
     2    public void onClick(View v) {
     3     Intent intent = new Intent();
     4     intent.setClass(MainActivity.this, SecondActivity.class);
     5     Bundle bundle = new Bundle();
     6     Log.v("android.abc", "!!!!!"+MainActivity.this.toString());
     7     bundle.putString("uid", MainActivity.this.toString());
     8     intent.putExtras(bundle);
     9     startActivityForResult(intent,GET_CODE);
    10    }
    11  
    12 //B.SecondActivity中,在OnClickListener中
    13      findViewById(R.id.button).setOnClickListener(new View.OnClickListener() 
    14     {   
    15           @Override   
    16       public void onClick(View v) 
    17        {   
    18          setResult(RESULT_OK,(new Intent()).setAction(uid));   
    19          finish();   
    20        }   
    21    });  
    22  
    23   //B.在MainActivity中,重写onActivityResult方法;
    24    @Override   
    25    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    26    {   
    27     if(requestCode == GET_CODE)
    28     {   
    29      if(resultCode == RESULT_CANCELED)
    30       {   
    31         text2.setText("点击了返回");   
    32       } 
    33       else 
    34       {   
    35         if (data != null) 
    36          {   
    37            text2.setText("得到第二个activity返回的结果:\n"+data.getAction());   
    38           }   
    39       }   
    40     }   
    41   }  

    其中static final private int GET_CODE = 0;是我自定义的常量,用来区分当前返回的是哪个activity的结果;下面是类SecondActivity的代码:

    public class SecondActivity extends Activity{
    String uid;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.second);
          Bundle bundle = this.getIntent().getExtras();
          if (bundle != null)
    {
            uid = bundle.getString("uid");
           }
           findViewById(R.id.button).setOnClickListener(
    new View.OnClickListener()
    {
               @Override
               public void onClick(View v)
    {
                 setResult(RESULT_OK,(new Intent()).setAction(uid));
                 finish();
               }
           });
        }
    }
    人多不足以依赖,要生存只有靠自己。 深窥自己的心,而后发觉一切的奇迹在你自己。 凡事皆有终结,因此,耐心是赢得成功的一种手段。
  • 相关阅读:
    Androidstudio 使用git插件提交代码
    androidstudio上传代码到git上
    tcpdump的简单使用
    使用nmap工具查询局域网某个网段正在使用的ip地址
    网段的划分
    jenkins配置源码管理git
    shell条件测试test
    shell简单用法笔记(shell中数值运算)二
    shell简单用法笔记(一)
    如何解决audiodg占用内存高(停止与重启audiodg服务)
  • 原文地址:https://www.cnblogs.com/wangshuaiandroid/p/5116485.html
Copyright © 2020-2023  润新知