【发布时间】: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