Why does my Activity extend ActionBarActivity?

2019-01-24 01:32发布

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;
        }
    }

}

6条回答
劳资没心,怎么记你
2楼-- · 2019-01-24 01:47

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

查看更多
▲ chillily
3楼-- · 2019-01-24 01:49

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.

查看更多
祖国的老花朵
4楼-- · 2019-01-24 01:53

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;

查看更多
Viruses.
5楼-- · 2019-01-24 01:56

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.

查看更多
叼着烟拽天下
6楼-- · 2019-01-24 01:57

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.

查看更多
叛逆
7楼-- · 2019-01-24 01:58

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

enter image description here

enter image description here

查看更多
登录 后发表回答