0

我有这个代码:

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。这很奇怪,因为在我的其他项目中它有效。

logcat 告诉:12-07 12:43:46.756: W/InputManagerService(60): 在非聚焦客户端 com.android.internal.view.IInputMethodClient$Stub$Proxy@406705e8 (uid=10037 pid=649) 上开始输入

4

4 回答 4

1

最好在onPause()方法中完成当前正在运行的活动。通常不要在按钮 click 内使用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-07T12:02:32.570 回答
0

您同时使用正常意图和父意图请使用一个,因为您正在使用选项卡组活动

于 2012-12-07T11:57:17.423 回答
0

我面临类似的问题,不确定它是否相同,但是当我们调用完成()时;在 startActivity 应用程序进入后台之前。

parentActivity.startChildActivity("Inventario",intent); 所以先打电话finish();

请尝试给我输出。

于 2012-12-07T11:53:05.360 回答
0

您需要将您的课程扩展到TabGroupActivity

  public class IntroInventario extends TabGroupActivity{

否则您需要创建一个引用 TabGroupActivity 类的对象,然后使用该类中的方法,即您的startChildActivity()

希望这可以帮助。

于 2013-07-27T17:51:47.563 回答