Android ActionBarSherlock On Top Icon Back

允我心安 提交于 2019-12-06 06:04:48

问题


I'm trying to make my top action bar icon to allow users to go back to previous screen. I tried to implement these codes. But none are working. Can anyone please guide me on this. I know this looks simple, I'm new to android . Below are my codes.

Problem : When i tap on the icon button it just cleared my screen without going to the previous screen.

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_item);
        checkInternetConnection();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //<--THIS




@Override
public boolean onOptionsItemSelected(MenuItem item) 
{    
   switch (item.getItemId()) 
   {        
      case android.R.id.home:            
         Intent intent = new Intent(this, SingleViewActivity.class);            
         intent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); 
         startActivity(intent);            
         return true;        
      default:            
         return super.onOptionsItemSelected(item);    
   }
}

回答1:


This is the way I do it:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // app icon in action bar clicked; go home
        Intent intent = new Intent(this, main.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        break;
    }
    return true;
}



回答2:


In your ressources(res) go to menu and add this make sur u have some button back for in your drawable

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/back"
    android:icon="@drawable/back1"
    android:showAsAction="always|withText"
    android:title="back"/>

now in your activity

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        break;
    case R.id.back:
        Intent in = new Intent(this, <classname which you want to go back>.class);
        startActivity(in);
        break;
    }
    return false;
}



回答3:


you may try this code

<item
    android:id="@+id/back"
    android:icon="@drawable/btn_back"
    android:showAsAction="always|withText"
    android:title="@string/txt_back"/>

>

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    // TODO Auto-generated method stub
    getSupportMenuInflater().inflate(R.menu.home, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    // TODO Auto-generated method stub
    //return super.onOptionsItemSelected(item);
    switch (item.getItemId()) 
    {
        case R.id.back:
                back_action();
            return true;

        default:
            break;
    }
    return true;
}

>



来源:https://stackoverflow.com/questions/12105479/android-actionbarsherlock-on-top-icon-back

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!