Why does my Activity extend ActionBarActivity?

2019-01-24 01:24发布

问题:

I downloaded the latest SDK version and when I created a new Android project the MainActivity that automatically generated extends ActionBarActivity, but I want to extend Activity.

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @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) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            return rootView;
        }
    }

}

回答1:

If you want to extend Activity class, you may check "Empty Activity" during the project creation trajectory.



回答2:

ActionBarActivity is for backwards-compatibility. So the Android Actionbar will also work on older devices, see documentation.

Base class for activities that use the support library action bar features.

You can add an ActionBar to your activity when running on API level 7 or higher by extending this class for your activity and setting the activity theme to Theme.AppCompat or a similar theme.

It is a subclass of FragmentsActivity and FragmentsActivity extends Activity. ==> so don't worry all things you could do with normal Activities you can also do with an ActionBarActivity.



回答3:

Simply Replace ActionBarActivity to Activity Then go to top of the code and replace import android.support.v7.app.ActionBarActivity; to import android.app.Activity;



回答4:

My guess is when you created the app, you choose the Action bar setting in eclipse. Please notice ActionBarActivity is an extension of Activity, so all features present in Activity will be present in ActionBarActivity.



回答5:

You can simply replace the ActionBarActivity with Activity since ActionBarActivity is an extension of Activity. You can refer the class hierarchy here: http://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html



回答6:

Nowadays latest Android SDK ActionbarActivity only. which is from IDE and Google. No Problem with that. ActionBarActivity Facilitate to your application which works on Older API also. Don't worry. That's is not problem.