Android切换活动

Tee*_*nge 5 android android-intent android-activity

我有2个活动.一个叫Login,另一个叫ListDeals.Login有一个带有提交按钮的表单,当按下该按钮时,应该将我们的活动切换到ListDeals.这有效.

但是,在Logcat中,我没有收到消息说活动已经开始.此外,当进入时ListDeals,如果用户按下后退按钮,则应该杀死两个活动.我环顾四周,这就是我提出的:

public class Login extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_screen);

    Button submit=(Button)findViewById(R.id.submit);
    submit.setOnClickListener(onSubmit);
}

private View.OnClickListener onSubmit=new View.OnClickListener() {

    @Override
    public void onClick(View view) {
        Intent myIntent=new Intent(view.getContext(),ListDeals.class );
        startActivityForResult(myIntent,0);

    }
};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.login_screen, menu);
    return true;
}

@Override
public void onActivityResult(int requestCode,int resultCode, Intent data) {
    if(resultCode==2) {
        finish();
    } 
}

}
Run Code Online (Sandbox Code Playgroud)
public class ListDeals extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.deals_list);
        System.out.println("starting activity");
    }

    @Override
    protected void onDestroy() {
        System.out.println("dude");
        setResult(2);
        super.onDestroy();


    }

    protected void onStop(){
        setResult(2);
        super.onStop();

    }

}
Run Code Online (Sandbox Code Playgroud)

但是,当我按下后退按钮时,它会将我带回到Login不是我想要的活动.

wsa*_*lle 5

在您的点击处理程序中onSubmit,只需完成您的登录活动,就像这样.这样,它就不会出现在活动堆栈上,因此,从其他活动中退回将使用户返回到他们开始的位置.

private View.OnClickListener onSubmit=new View.OnClickListener()
{
    @Override
    public void onClick(View view)
    {
        Intent myIntent=new Intent(view.getContext(),ListDeals.class);
        startActivity(myIntent);
        finish();
    }
};
Run Code Online (Sandbox Code Playgroud)

另外,为了解决第二个问题,请使用Log类方法,例如Log.iLog.d用于调试消息,这些方法将显示在logcat中.