【问题标题】:Why does my Activity extend ActionBarActivity?为什么我的 Activity 会扩展 ActionBarActivity?
【发布时间】:2014-03-13 22:30:48
【问题描述】:

我下载了最新的 SDK 版本,当我创建一个新的 Android 项目时,自动生成的 MainActivity 扩展了 ActionBarActivity,但我想扩展 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;
        }
    }

}

【问题讨论】:

    标签: android android-activity android-actionbar


    【解决方案1】:

    ActionBarActivity 用于向后兼容。因此,Android Actionbar 也可以在旧设备上运行,请参阅 documentation

    使用支持库操作栏的活动的基类 功能。

    在 API 级别 7 上运行时,您可以将 ActionBar 添加到您的 Activity 通过为您的活动扩展此类并设置 活动主题改为 Theme.AppCompat 或类似主题。

    它是 FragmentsActivity 和 FragmentsActivity extends Activity 的一个子类。 ==> 所以不用担心你可以用普通活动做的所有事情,你也可以用 ActionBarActivity 做。

    【讨论】:

      【解决方案2】:

      如果要扩展Activity类,可以在项目创建轨迹中勾选“Empty Activity”。

      【讨论】:

      • 我喜欢视觉答案
      【解决方案3】:

      简单替换 ActionBarActivityActivity 然后转到代码顶部并替换 import android.support .v7.app.ActionBarActivity;import android.app.Activity;

      【讨论】:

        【解决方案4】:

        我的猜测是,当您创建应用程序时,您选择了 Eclipse 中的操作栏设置。请注意 ActionBarActivity 是 Activity 的扩展,所以 Activity 中存在的所有功能都会出现在 ActionBarActivity 中。

        【讨论】:

          【解决方案5】:

          您可以简单地将 ActionBarActivity 替换为 Activity,因为 ActionBarActivity 是 Activity 的扩展。您可以在此处引用类层次结构: http://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html

          【讨论】:

            【解决方案6】:

            仅适用于当今最新的 Android SDK ActionbarActivity。来自 IDE 和 Google。没问题。 ActionBarActivity 促进您的应用程序也适用于旧 API。别担心。这不是问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-11
              • 1970-01-01
              • 1970-01-01
              • 2015-09-26
              • 1970-01-01
              相关资源
              最近更新 更多