How do I set the parent activity of an activity at runtime?

南笙酒味 提交于 2019-12-04 03:42:44

问题


I have an arbitrary number of hierarchically nested views/activities. The action bar should show the Up navigation button to navigate to a higher level in any view. For this, the google documentation says I have to set the parent activity with a tag in the activity's xml definition. However, I'm creating my activities dynamically and a child element can be of the same activity as it's parent.

So how do I set the parent activity to the actual parent instance at runtime?


回答1:


It sounds like you are confusing up and back navigation.

The up button should be deterministic. From a given screen, the up button should always bring the user to the same screen.

The back button should not always bring the user to the same screen. The purpose of the back button is to help the user go backwards through your app chronologically. It should bring the user to the previous screen.

If there is no clear hierarchy of screens (e.g. there are no parent/child screens), then you may not need to implement up navigation at all.

See: Navigation with Up and Back

One option for overriding the default up button behavior is to simply intercept up button clicks and handle it yourself. For example:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        // Launch the correct Activity here
        return true;
    }
    return super.onOptionsItemSelected(item);
}


来源:https://stackoverflow.com/questions/20378894/how-do-i-set-the-parent-activity-of-an-activity-at-runtime

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