Skip to content

Instantly share code, notes, and snippets.

@keyboardr
Created May 12, 2013 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keyboardr/5563001 to your computer and use it in GitHub Desktop.
Save keyboardr/5563001 to your computer and use it in GitHub Desktop.
Automatically handle HomeAsUp functionality
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v4.app.TaskStackBuilder;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
public abstract class NavActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle arg0) {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(arg0);
setSupportProgressBarIndeterminateVisibility(false);
if (NavUtils.getParentActivityName(this) != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
// Automatically handle hierarchical Up navigation if the proper
// metadata is available.
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (upIntent != null) {
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
TaskStackBuilder b = TaskStackBuilder.create(this);
b.addParentStack(this);
b.startActivities();
finish();
} else {
NavUtils.navigateUpTo(this, upIntent);
}
return true;
}
}
return super.onOptionsItemSelected(item);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment