How to implement the Android ActionBar back button?

后端 未结 12 2185
天涯浪人
天涯浪人 2020-11-29 15:38

I have an activity with a listview. When the user click the item, the item \"viewer\" opens:

List1.setOnItemClickListener(new OnItemClickListener() {
    @Ov         


        
12条回答
  •  天命终不由人
    2020-11-29 16:11

    Make sure your the ActionBar Home Button is enabled in the Activity:

    Android, API 5+:

    @Override
    public void onBackPressed() {
         ...
         super.onBackPressed();
    }
    

    ActionBarSherlock and App-Compat, API 7+:

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        ...
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
    

    Android, API 11+:

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        ...
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    

    Example MainActivity that extends ActionBarActivity:

    public class MainActivity extends ActionBarActivity {
        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Back button
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case android.R.id.home: 
                // API 5+ solution
                onBackPressed();
                return true;
    
            default:
                return super.onOptionsItemSelected(item);
            }
        }
    }
    

    This way all the activities you want can have the backpress.

    Android, API 16+:

    http://developer.android.com/training/implementing-navigation/ancestral.html

    AndroidManifest.xml:

    
        ...
        
        
            ...
        
        
        
            
            
        
    
    

    Example MainActivity that extends ActionBarActivity:

    public class MainActivity extends ActionBarActivity {
        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Back button
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            // Respond to the action bar's Up/Home button
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    

提交回复
热议问题