I want a button click to close an Activity. I am new to intents and and a little confused.
This is ActivityOne
which keeps a track of life cycle.
On a button press, it opens ActivityTwo
and puts ActivityOne
in background.
This works fine when I used this intent in my onClickListener
:
Intent myIntent = new Intent(ActivityOne.this, ActivityTwo.class);
ActivityOne.this.startActivity(myIntent);
In ActivityTwo
I need to use intents and finish()
method to close the activity. I tried to Google it and I thought this might work:
Intent myIntent2 = new Intent(getApplicationContext(), ActivityTwo.class);
ActivityTwo.this.finish(myIntent2);
It didn't work the full code is below:
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);
}
});
// ...
}
}
Activity 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);
}
});
// ...
}
}
Alright the best way to finish the current Activity is by using
finish()
method. So inside theonClick()
of your button in theActivityTwo
you can do this.no need to make new intents for finishing current Activity. Also note that pressing back will also finish your Activity.
@Arjun Krishnan you want to kill activityTwo?
try this
It would help you
Replace these two lines
Intent myIntent2=new Intent(getApplicationContext(),ActivityTwo.class); ActivityTwo.this.finish(myIntent2);
with this
ActivityTwo.this.finish();
You want to close
ActivityTwo
when a button is clicked? Just usefinish();
Full code for the button listener in
ActivityTwo
would be: