【问题标题】:Defining destination Activity for a Button为按钮定义目标活动
【发布时间】:2012-03-28 08:46:20
【问题描述】:

我发现这段代码对于从一个活动到另一个活动非常有用,但问题是,我看不到目的地的位置。如果有人指出如何更改目的地,我将不胜感激。

代码如下:

Button getTaxi = (Button) findViewById(R.id.GetTaxi);
    getTaxi.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View view) {
            final Intent intent = new Intent();
            setResult(RESULT_OK, intent);
            finish();
        }
    });

xml中的相应部分:

<Button
    android:id="@+id/GetTaxi"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="GetTaxi" >
</Button>

非常感谢您!

【问题讨论】:

    标签: java android xml button android-activity


    【解决方案1】:

    实际上,在Button 的点击上执行的代码表明您的Activity(顺便说一下,这是一个子活动)已经完成了它的工作,现在以结果代码RESULT_OK 结束。这意味着有另一个Activity 已经开始这个实际的Activity 以获得某种结果。因此,当您单击Button 时,您的Activity 将完成。要在Button 的单击上启动其他Activity,您应该创建一个Intent,明确指定您要启动的Activity,或者只是您要对某些数据执行的操作,让Android 解析最后的Activity 给你。然后你应该调用startActivity(),传入你创建的Intent。希望这会有所帮助。

    【讨论】:

    • 感谢您让我大开眼界。是的,这实际上是一个子活动。我正在寻找的代码部分当然是在主要活动上。再次感谢!
    【解决方案2】:

    你可以这样使用:

    Button getTaxi = (Button) findViewById(R.id.GetTaxi);
    getTaxi.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(final View view) {
            Intent intent = new Intent();
            intent.setClass(this, GetTaxiActivity.class);
            startActivity(intent);
          //call finish() if the current activity is something like a loading page
        }
    });
    

    您提到的上面的代码片段是一个子活动,它被称为 using StartActivityForResult();

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2015-10-18
      • 1970-01-01
      • 2017-10-12
      • 2019-02-03
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多