首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android: startChildActivity (tabgroupactivity)关闭应用

Android: startChildActivity (tabgroupactivity)关闭应用
EN

Stack Overflow用户
提问于 2012-12-07 19:49:21
回答 4查看 556关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
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)上开始输入

EN

回答 4

Stack Overflow用户

发布于 2012-12-07 20:02:33

最好在onPause()方法中完成当前正在运行的活动。一般不要在按钮点击中使用finish()方法。像这样使用finish方法。它可能会解决你的问题

代码语言:javascript
复制
    @Override
public void onPause() {
    super.onPause();
    finish();
}   

然后取而代之

代码语言:javascript
复制
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
        Intent intent = new Intent(getParent(), InventarioDimenticata.class);
        finish();
        parentActivity.startChildActivity("InventarioDimenticata",intent);

使用这段代码可能会对你有所帮助

代码语言:javascript
复制
                Intent intent = new Intent();
            intent.setClass(getBaseContext(), InventarioDimenticata.class);
            startActivity(intent);              
票数 1
EN

Stack Overflow用户

发布于 2012-12-07 19:53:05

我遇到了类似的问题,不确定是否相同,但在startActivity应用程序进入后台之前,我们调用finish();。

所以先调用parentActivity.startChildActivity("Inventario",intent);,然后调用finish();

请试着给我输出。

票数 0
EN

Stack Overflow用户

发布于 2012-12-07 19:57:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13762509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档