According to Google's document, getActionBar().setDisplayHomeAsUpEnabled(true)
is needed to show the up button. I created a bare-bone activity using the wizard in Eclipse and specified its parent activity. I could not find any getActionBar().setDisplayHomeAsUpEnabled(true)
in the automatically generated code, but the up button is present when this activity is started and it works as expected. Could anyone shed some light on this?
public class FooActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_foo);
//more code...
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//more code...
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//more code...
return rootView;
}
}
}
I described all possible combinations below and their outcomes:
android:parentActivityName=".MyActivity
and thisgetActionBar().setDisplayHomeAsUpEnabled(true);
- back button appears and it works;android:parentActivityName=".MyActivity
- back button appears and it works, the same as above;getActionBar().setDisplayHomeAsUpEnabled(true);
, - back button appears but clicking on it doesn't go anywhere;getActionBar().setDisplayHomeAsUpEnabled(false);
, even though you have thisandroid:parentActivityName=".MyActivity
in the manifest, the back button doesn't show up.That's how this works my friend.
When you specify a
parentActivityName
in yourAndroidManifest
,Acitivty
will check for that and automatically enable the "up" affordance if it's present.