繁体   English   中英

Android - 创建和管理活动

[英]Android - Creating and managing activities

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

`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????
            }
        }); 
    } 
}

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

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

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

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

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

那么你可以调用finish()而不是通过intent开始一个新的活动。 finish()关闭活动后调用onDestroy()

如果你试图通过意图返回,你还需要通过setFlags()设置Intent.FLAG_ACTIVITY_CLEAR_TOP标志, setFlags()如果你在它们之间不断交换,你最终会在后面的堆栈中有很多活动。

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

在第二个类中,使用函数finish()。

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

完();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM