0

问题:Actionbarsherlock后退按钮和智能手机的后退按钮

我有,我想,当我无论从智能手机和动作条上的第二活动按后退按钮回调的主要活动。但它总是崩溃,它只是当我把完成();在主要活动中,但如果我这样做,那么智能手机的后退按钮无法正常工作。

MainActivity:

public class Principal extends SherlockActivity { 

    public static int THEME = R.style.Theme_Sherlock; 
    private Button entrar; 
    private Button cadastrar; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      //setTheme(Principal.THEME); //Used for theme switching in samples 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.home); 

      entrar = (Button)findViewById(R.id.entrar); 
      entrar.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 


        startActivity(new Intent(Principal.this,LoginActivity.class)); 
        finish(); 
       } 
      }); 
      cadastrar = (Button)findViewById(R.id.cadastrar_home); 
      cadastrar.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 


        Intent intent = new Intent(Principal.this, RegisterActivity.class); 
        startActivity(intent); 
        //finish(); 
       } 
      }); 
     } 

SecondActicity:

public class RegisterActivity extends SherlockActivity{ 

    protected void onCreate(Bundle savedInstanceState) { 
     setTheme(Principal.THEME); //Used for theme switching in samples 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) 
     { 

     case android.R.id.home: 
      // Do whatever you want, e.g. finish() 
      Intent intent = new Intent(this, Principal.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
      break; 

      } 
     return true; 
    } 
} 

已经尝试过很多方法,没有工作,只有完成();

回答

2

在你的第二个活动只是删除你的意图和startActivity的东西。只需要:

case android.R.id.home: 
    finish(); 
break; 

完成()将删除背堆栈活动,以便启动所需的用户按后退按钮返回到一个新的活动时,不使用它。

+0

谢谢,还有答案。 – Marckaraujo

1

您不想重新启动您从SecondActivity开始的主要活动,您只需要完成第二项活动并返回到上一项活动。尝试更换在SecondActivity下面的代码 - 只需finish()

Intent intent = new Intent(this, Principal.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 

+0

谢谢,它现在有效。 – Marckaraujo