我有这样的代码:
public class IntroInventario extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.intro_inventario);
final Database db=new Database(this);
db.open();
Cursor password=db.dammi_password();
final EditText inserisci=(EditText) findViewById(R.id.inserisci_password);
Button entra_inventario=(Button) findViewById(R.id.entra_inventario);
TextView dimenticata=(TextView) findViewById(R.id.dimenticata_password);
final Toast toast=new Toast(this);
while(password.moveToNext()){
if(password.getString(password.getColumnIndex("password")).equals("")){
// primo accesso
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
Intent intent = new Intent(IntroInventario.this, InventarioNoPassword.class);
finish();
parentActivity.startChildActivity("InventarioNoPassword",intent);
}
}
db.close();
// inserisci password
entra_inventario.setOnClickListener(new OnClickListener(){
public void onClick(View v){
db.open();
Cursor password_2=db.dammi_password();
while(password_2.moveToNext()){
if(inserisci.getText().toString().equals(password_2.getString(password_2.getColumnIndex("password")))){
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
Intent intent = new Intent(getParent(), Inventario.class);
finish();
parentActivity.startChildActivity("Inventario",intent);
}else{
Toast.makeText(IntroInventario.this,"Password sbagliata",Toast.LENGTH_LONG);
toast.show();
}
}
db.close();
}
});
// password dimenticata
dimenticata.setOnClickListener(new OnClickListener(){
public void onClick(View v){
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
Intent intent = new Intent(getParent(), InventarioDimenticata.class);
finish();
parentActivity.startChildActivity("InventarioDimenticata",intent);
}
});
}
}问题是,如果我在"// primo accesso“中,应用程序会自动关闭,而不是转到InventarioNoPassword.class。这很奇怪,因为在我的其他项目中,它是有效的。
日志告诉: 12-07 12:43:46.756: W/InputManagerService(60):在非焦点客户端com.android.internal.view.IInputMethodClient$Stub$Proxy@406705e8 (uid=10037 pid=649)上开始输入
发布于 2012-12-07 20:02:33
最好在onPause()方法中完成当前正在运行的活动。一般不要在按钮点击中使用finish()方法。像这样使用finish方法。它可能会解决你的问题
@Override
public void onPause() {
super.onPause();
finish();
} 然后取而代之
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
Intent intent = new Intent(getParent(), InventarioDimenticata.class);
finish();
parentActivity.startChildActivity("InventarioDimenticata",intent);使用这段代码可能会对你有所帮助
Intent intent = new Intent();
intent.setClass(getBaseContext(), InventarioDimenticata.class);
startActivity(intent); 发布于 2012-12-07 19:53:05
我遇到了类似的问题,不确定是否相同,但在startActivity应用程序进入后台之前,我们调用finish();。
所以先调用parentActivity.startChildActivity("Inventario",intent);,然后调用finish();
请试着给我输出。
发布于 2012-12-07 19:57:17
您正在同时使用正常意图和父级意图,请使用一个信标,因为您正在使用选项卡组活动
https://stackoverflow.com/questions/13762509
复制相似问题