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();
}
});