【问题标题】:What is the difference between 2 ways of starting an activity in android在android中启动活动的两种方式有什么区别
【发布时间】:2012-07-17 20:41:50
【问题描述】:

我无法理解何时使用这些方法

Button b = (Button) findViewById(R.id.btn);
        home.setOnClickListener (new View.OnClickListener() {
            public void onClick(View view) {
                Intent i = new Intent(view.getContext(), Home.class);
                    startActivityForResult (i, 0);

            }
        });

Button b = (Button)findViewById(R.id.btn);
    button.setOnClickListener (new View.OnClickListener() {
        public void onClick (View view) {
            Intent i = new Intent (this, Home.class);
            startActivity (i);

        }
    });

我的另一个疑问是当我使用intent onCreate(Bundle b) 方法启动一个新活动时,我想知道b(Bundle) 是指当前活动还是前一个活动被调用。

【问题讨论】:

    标签: android


    【解决方案1】:

    当我们需要来自 secondActivity 的一些数据时使用 OnstartActivityforResult,就像相机一样,当我们点击它并返回第一个 Activity onActivityForResult 方法时。而 startActivity 只是为了在 Android 中启动新的 Activity...

    http://rahulonblog.blogspot.in/2010/05/android-startactivityforresult-example.html

    【讨论】:

    • k 回答我的第二个问题怎么样?
    • 当我开始一个新的活动时,一个 OnCreate(Bundle b) 被调用,我想知道 b(Bundle) 是指新活动还是旧活动
    【解决方案2】:

    如果你在任何Activity中调用startActivityForResult,当被调用的Activity完成或按下返回按钮时,会通知当前正在调用的Activity,并返回一些信息给调用Activity。 p>

    调用Activity的onActivityResult方法负责接收完成的Activity发送的信息。

    【讨论】:

      【解决方案3】:

      startActivity(Intent) 方法用于启动一个新的活动,该活动将被放置在活动堆栈的顶部。它需要一个参数,一个 Intent,它描述了要执行的活动。

      有时您希望在活动结束时从活动中获取结果。例如,您可以启动一个活动,让用户在联系人列表中选择一个人;当它结束时,它会返回被选中的人。为此,您调用 startActivityForResult(Intent, int) 版本,并带有标识调用的第二个整数参数。结果将通过您的 onActivityResult(int, int, Intent) 方法返回。

      当一个活动退出时,它可以调用 setResult(int) 将数据返回给它的父级。它必须始终提供结果代码,可以是标准结果 RESULT_CANCELED、RESULT_OK 或任何以 RESULT_FIRST_USER 开头的自定义值。此外,它还可以选择返回一个 Intent,其中包含它想要的任何附加数据。所有这些信息连同它最初提供的整数标识符一起出现在父级的 Activity.onActivityResult() 中。

      如果子活动因任何原因(如崩溃)失败,父活动将收到代码为 RESULT_CANCELED 的结果。

      【讨论】:

      • 所以,你需要使用 startActivity(),如果你只想开始一个新的活动,但如果你想得到一些结果(可能是一些值,或者一些字符串),你需要使用 startActivityForResult()。
      猜你喜欢
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 2013-09-09
      • 2021-09-28
      相关资源
      最近更新 更多