Android - 创建和管理活动

时间:2012-01-08 03:58:34

标签: android android-activity

我创建了两个屏幕,我将粘贴下面的代码。

`FirstScreen:` i have a button and when tap/click it will go to `SecondScreen`
`SecondScreen:` i have a button and when tap/click it will go to `FirstScreen`

//代码://

public class FirstScreen extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn = (Button)findViewById(R.id.btnPressMe);

        btn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(Main.this, SecondScreen.class));
            }
        }); 
    } 
}


public class SecondScreen extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondscreen);

        Button btn = (Button)findViewById(R.id.btnGoToThirdScreen);

        btn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                //startActivity(new Intent(Main.this, SecondScreen.class));
                //HOW DO I GOT TO FIRST SCREEN????
            }
        }); 
    } 
}

如果有更好的方法,请告诉我。 - 谢谢。

4 个答案:

答案 0 :(得分:2)

如果你想返回到第一个活动,你只需要完成第二个活动,而不是创建第一个活动的新实例,这样就完成了:

public void onClick(View v) {
    finish();
}

要从第一个活动开始第二个活动,您应该:

startActivity(new Intent(FirstScreen.this, SecondScreen.class));

答案 1 :(得分:1)

您可以致电finish()而不是通过意图开始新的活动。在onDestroy()关闭活动后调用finish()

如果您尝试通过意图返回,则还需要通过Intent.FLAG_ACTIVITY_CLEAR_TOP设置setFlags()标记,否则如果您在它们之间进行交换,则最终会在后台堆栈中进行大量活动。< / p>

除非你有充分的理由不这样做,否则你应该使用内置的后退按钮。

答案 2 :(得分:1)

在第二节课中,使用函数finish()。

答案 3 :(得分:0)

在第二个屏幕上按钮的onClick()中,只放一行:

完成();