zoukankan      html  css  js  c++  java
  • Android学习——启动活动的最佳写法

    启动活动的方法相信你已经非常熟悉了,首先通过 Intent 构建出当前的“意图”,然后 调用 startActivity()或 startActivityForResult()方法将活动启动起来,如果有数据需要从一个活 动传递到另一个活动,也可以借助 Intent 来完成。

    假设 SecondActivity 中需要用到两个非常重要的字符串参数,在启动 SecondActivity 的 时候必须要传递过来,那么我们很容易会写出如下代码:

    1 Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    2 
    3 intent.putExtra("param1", "data1"); intent.putExtra("param2", "data2"); startActivity(intent);

    这样写是完全正确的,不管是从语法上还是规范上,只是在真正的项目开发中经常会有 对接的问题出现。比如 SecondActivity 并不是由你开发的,但现在你负责的部分需要有启动SecondActivity 这个功能,而你却不清楚启动这个活动需要传递哪些数据。这时无非就有两种办法,一个是你自己去阅读 SecondActivity 中的代码,二是询问负责编写 SecondActivity的同事。你会不会觉得很麻烦呢?其实只需要换一种写法,就可以轻松解决掉上面的窘境。 修改 SecondActivity 中的代码,如下所示:

     1 public class SecondActivity extends BaseActivity {
     2 
     3 public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, SecondActivity.class); intent.putExtra("param1", data1);
     4 
     5 intent.putExtra("param2", data2);
     6 
     7 context.startActivity(intent);
     8 
     9 }
    10 
    11 ……
    12 
    13 }

    我们在 SecondActivity 中添加了一个 actionStart()方法,在这个方法中完成了 Intent 的构 建,另外所有 SecondActivity 中需要的数据都是通过 actionStart()方法的参数传递过来的,然 后把它们存储到 Intent 中,最后调用 startActivity()方法启动 SecondActivity。

    这样写的好处在哪里呢?最重要的一点就是一目了然,SecondActivity 所需要的数据全 部都在方法参数中体现出来了,这样即使不用阅读 SecondActivity 中的代码,或者询问负责 编写 SecondActivity 的同事,你也可以非常清晰地知道启动 SecondActivity 需要传递哪些数 据。另外,这样写还简化了启动活动的代码,现在只需要一行代码就可以启动 SecondActivity, 如下所示:

     

    button1.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

    SecondActivity.actionStart(FirstActivity.this, "data1", "data2");

    }

    });

  • 相关阅读:
    leetcode231 2的幂 leetcode342 4的幂 leetcode326 3的幂
    leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence
    leetcode64. Minimum Path Sum
    leetcode 20 括号匹配
    算法题待做
    leetcode 121. Best Time to Buy and Sell Stock 、122.Best Time to Buy and Sell Stock II 、309. Best Time to Buy and Sell Stock with Cooldown 、714. Best Time to Buy and Sell Stock with Transaction Fee
    rand7生成rand10,rand1生成rand6,rand2生成rand5(包含了rand2生成rand3)
    依图
    leetcode 1.Two Sum 、167. Two Sum II
    从分类,排序,top-k多个方面对推荐算法稳定性的评价
  • 原文地址:https://www.cnblogs.com/znjy/p/14908102.html
Copyright © 2011-2022 走看看