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): フォーカスされていないクライアントで入力を開始しています

4

4 に答える 4

1

onPause()メソッド内で現在実行中のアクティビティを終了することをお勧めします。一般に、ボタン クリック内で 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

同様の問題に直面していますが、同じかどうかはわかりませんが、finish(); を呼び出すと、startActivity アプリがバックグラウンドになる前に。

だから最初に電話してparentActivity.startChildActivity("Inventario",intent); からfinish();

試してみて、私に出力してください。

于 2012-12-07T11:53:05.360 に答える
0

通常のインテントと親インテントを同時に使用していますが、タブ グループ アクティビティを使用しているため、一方を使用してください

于 2012-12-07T11:57:17.423 に答える