我有 2 个 Activity 。一个名为 Login
,另一个名为 ListDeals
。 Login
有一个带有提交按钮的表单,当按下该按钮时,应该将我们的 Activity 切换到 ListDeals
。这行得通。
但是,在 Logcat 中,我没有收到一条消息说 Activity 已经开始。此外,当在 ListDeals
中时,如果用户按下后退按钮,这两个 Activity 都应该被终止。我环顾四周,这就是我想出的:
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();
}
}
}
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();
}
}
但是,当我按下后退按钮时,它会将我带回到 Login
Activity ,这不是我想要的。
最佳答案
在您的点击处理程序 onSubmit
中,只需完成您的登录 Activity ,就像这样。这样,它就不会在 Activity 堆栈上,因此,从您的其他 Activity 中按下后退会将用户带回到他们开始的地方。
private View.OnClickListener onSubmit=new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Intent myIntent=new Intent(view.getContext(),ListDeals.class);
startActivity(myIntent);
finish();
}
};
此外,为了解决您的第二个问题,请使用 Log class methods ,例如用于调试消息的 Log.i
或 Log.d
,它们将显示在 logcat 中。
关于安卓切换 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11441908/