【问题标题】:android - How to close an activity on button click?android - 如何在按钮单击时关闭活动?
【发布时间】:2014-01-31 06:05:02
【问题描述】:

我想要一个按钮来关闭一个活动。我是新手,有点困惑。 这是ActivityOne,它跟踪生命周期。
按下按钮时,它会打开 ActivityTwo 并将 ActivityOne 置于后台。
当我在 onClickListener 中使用此意图时,这很好用:

Intent myIntent = new Intent(ActivityOne.this, ActivityTwo.class);
ActivityOne.this.startActivity(myIntent);

ActivityTwo 我需要使用意图和finish() 方法来关闭活动。我尝试用谷歌搜索它,我认为这可能有效:

Intent myIntent2 = new Intent(getApplicationContext(), ActivityTwo.class);
ActivityTwo.this.finish(myIntent2);

它没有工作完整的代码如下:

public class ActivityOne extends Activity {

    // ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);

        // ...

        Button launchActivityTwoButton = (Button) findViewById(R.id.bLaunchActivityTwo); 
        launchActivityTwoButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO:
                // Launch Activity Two
                // Hint: use Context's startActivity() method

                // Create an intent stating which Activity you would like to start
                Intent myIntent = new Intent(ActivityOne.this, ActivityTwo.class);

                // Launch the Activity using the intent
                ActivityOne.this.startActivity(myIntent);               
            }
        });

        // ...
    }
}

活动 2:

public class ActivityTwo extends Activity {    

    // ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);

        // ...

        Button closeButton = (Button) findViewById(R.id.bClose); 
        closeButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                // TODO:
                // This function closes Activity Two
                // Hint: use Context's finish() method
                Intent myIntent2 = new Intent(getApplicationContext(), ActivityTwo.class);
                ActivityTwo.this.finish(myIntent2);
            }
        });
        // ...
    }
}

【问题讨论】:

  • 按下后退按钮将关闭您的活动。
  • 当然按下后退按钮会关闭它,但这不是问题! :)
  • 对于 ActivityOne 我只是放了` startActivity(intent); ` 它工作正常,无需键入 className.this.startActivity(intent);如果有人知道我需要像提问者一样写出来的原因,请随意插入。

标签: android android-intent android-activity


【解决方案1】:

您想在单击按钮时关闭ActivityTwo?只需使用finish();

ActivityTwo 中按钮侦听器的完整代码为:

Button closeButton = (Button) findViewById(R.id.bClose); 
closeButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        // TODO:
        // This function closes Activity Two
        // Hint: use Context's finish() method
        finish();
    }
});

【讨论】:

    【解决方案2】:

    @Arjun Krishnan 你想杀死 activityTwo 吗?

    试试这个

     ActivityTwo.this.finish();
    

    对你有帮助

    【讨论】:

      【解决方案3】:

      好吧,完成当前活动的最佳方法是使用finish() 方法。因此,在ActivityTwo 按钮的onClick() 内,您可以执行此操作。

      closeButton.setOnClickListener(new OnClickListener() {
      
              @Override
              public void onClick(View v) {
                  finish();
                  //closes ActivityTwo
              }
      });
      

      无需为完成当前 Activity 制定新的意图。另请注意,按下返回也会完成您的 Activity。

      【讨论】:

        【解决方案4】:

        替换这两行

        Intent myIntent2=new Intent(getApplicationContext(),ActivityTwo.class); ActivityTwo.this.finish(myIntent2);

        用这个 ActivityTwo.this.finish();

        【讨论】:

          【解决方案5】:
          Button exit= (Button) findViewById(R.id.yes);
          exit.setOnClickListener(new View.OnClickListener() {
                      @Override
                      public void onClick(View view) {
                          MainActivity.this.finish();
                      }
                  });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-24
            相关资源
            最近更新 更多