Android - Как закрыть активность при нажатии кнопки?

Я хочу нажать кнопку, чтобы закрыть Activity. Я новичок в намерениях и немного смущен. Это ActivityOne, который отслеживает жизненный цикл.
Нажатие кнопки, оно открывает ActivityTwo и помещает ActivityOne в фоновом режиме.
Это отлично работает, когда я использовал это намерение в своем onClickListener:

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

В ActivityTwo Мне нужно использовать intents и finish() метод для закрытия действия. Я попытался это сделать Google, и я думал, что это может сработать:

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 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 finish() method
                Intent myIntent2 = new Intent(getApplicationContext(), ActivityTwo.class);
                ActivityTwo.this.finish(myIntent2);
            }
        });
        // ...
    }
}

Ответы

Ответ 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 finish() method
        finish();
    }
});

Ответ 2

@Арджун Кришнан, вы хотите убить активность?

попробуйте это

 ActivityTwo.this.finish();

Это поможет вам

Ответ 3

Хорошо, лучший способ завершить текущую активность - с помощью метода finish(). Поэтому внутри onClick() вашей кнопки в ActivityTwo вы можете сделать это.

closeButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            finish();
            //closes ActivityTwo
        }
});

не нужно создавать новые намерения для завершения текущего действия. Также обратите внимание, что нажатие назад также завершит вашу работу.

Ответ 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();
            }
        });