使用片段活动创建的ADT空白活动..

时间:2014-03-09 22:38:38

标签: android eclipse android-fragments adt

我现在真的很困惑,因为每当我创建一个带有空白活动的新Android应用程序时,它总是带有fragment_main.xml ...我只想创建一个没有片段的空白活动...

在第一张图片中,空白活动附带片段布局..

first image blank activity

第二张图片显示了创建的fragment_main

second image blank activity

现在我真的很困惑......这只是在将ADT更新到最新版本后才发生的 我已经提到过这个帖子:https://stackoverflow.com/questions/22203862/adt-doesnt-create-default-hello-world-but-command-line-does#=

我只是想制作一个没有片段视图的空白活动的Android应用程序...

15 个答案:

答案 0 :(得分:27)

对于那些想要了解如何从项目中删除碎片的说明:

1)复制res / layout / fragment_main.xml的所有内容。打开activity_main.xml,删除FrameLayout,然后粘贴复制的内容。

2)删除fragment_main.xml

3)在MainActivity.java中,删除整个PlaceHolderFragment类:

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

4)从onCreate()中删除以下行:

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

此时你应该全部设置为运行项目。

答案 1 :(得分:7)

您可以通过编辑Android SDK文件夹中的模板文件来使用以前的模板。但是,请确保备份“BlankActivity”文件夹。

  • 转到 / templates / tools / templates / activities / BlankActivity

  • 找到 template.xml 文件并找到以下代码

     <parameter
      id="fragmentLayoutName"
      name="Fragment Layout Name"
      type="string"
      constraints="layout|unique|nonempty"
      suggest="fragment_${classToResource(activityClass)}"
      default="fragment_main"
      help="The name of the layout to create for the activity's content fragment" />
    

并将constraints更改为constraints="empty"

  • 找到 recipie.xml.ftl 并找到以下代码段 <instantiate from="res/layout/fragment_simple.xml.ftl" to="${escapeXmlAttribute(resOut)}/layout/${fragmentLayoutName}.xml" />
    并评论整条线。

  • root / src / app_package 中找到 SampleActivity.java.ftl 文件并删除这两行 <#include "include_options_menu.java.ftl"> <#include "include_fragment.java.ftl">

  • root / res / layout 中找到 fragment_simple.xml.ftl activity_fragment_container.xml.ftl 文件。将 fragment_simple.xml.ftl文件的内容复制到 activity_fragment_container.xml.ftl 文件。

现在,当您尝试创建新活动时,您将获得此屏幕 new activity without fragment

您可以将 片段布局名称 字段留空。

对于空白活动,这对我来说很好。我不确定这是否是正确的方法,丢弃碎片和所有,但这对我有用。

答案 2 :(得分:6)

这是ADT版本22.6.0的新功能: http://developer.android.com/tools/sdk/eclipse-adt.html

编辑:使用最新的ADT更新,有一个名为“空活动”的新模板没有碎片。它是一个扩展Activity的普通类(即使没有默认菜单)。

请注意,还有一个“空白活动”,它扩展了ActionBarActivity并且有片段

答案 3 :(得分:5)

感谢报告此事的人https://code.google.com/p/android/issues/detail?id=67513

这是我第一次看到android-review.googlesource.com。四处搜索我没有看到下载补丁集的方法,我不确定如何“挑选”tools_r22.6,如果有一个线程解释它,链接将不胜感激。< / p>

这是我如何去做的。

在您的计算机上,导航到SDK文件夹,然后导航到\ tools \ templates \ activities

复制BlankActivities文件夹并将其粘贴到同一目录中。

将BlankActivities_copy重命名为EmptyActivities

转到https://android-review.googlesource.com/#/c/88890/4

在“文件”部分下面有一个链接列表。每个链接都会将您定向到需要添加到您创建的新EmptyActivities文件夹的xml。

将xml从右窗格复制到左窗格顶部的路径\文件(链接也是路径)。如果文件已存在,则删除内容并替换。如果该文件不存在,请创建该文件并将xml复制到该文件中。

对每个链接重复。

关闭并重新打开Eclipse。如果您在编辑器中打开了任何文件,Eclipse将崩溃。

感谢Josiah Gaskin在谷歌进行了令人难以置信的2天转变!

没有培训资料引用BlankActivity中的片段。我确信这个修复程序在尝试学习新IDE时试图弄清楚如何浏览片段,从而为我节省了无数个小时。 再次感谢。

答案 4 :(得分:4)

如果您下载最新的ADT 22.6.3(使用构建工具19.0.3),您可以选择创建一个不使用片段的新Activity

答案 5 :(得分:3)

我也面临同样的问题。 我刚刚删除了eclipse并再次从http://developer.android.com/sdk/index.html#download下载了ADT包 要恢复以前的项目,只需将工作空间更改为上一个项目。 这对我有用。

答案 6 :(得分:3)

如果您不希望片段部分出现在您的应用中,那么只需在项目设置向导中“取消创建活动选项”,然后 为您的项目手动创建活动和布局

答案 7 :(得分:3)

对此的解决方案是旧版&#34;空白活动&#34;的复制品。在%Wherever your ADT bundle is%\sdk\tools\templates\activities\

如果某人有旧版本,您可以重命名,将其放在%Wherever your ADT bundle is%\sdk\tools\templates\activities\,然后在启动项目时,选择此文件夹而不是&#34;空白活动&#34;,所以如果你有副本请分享。

答案 8 :(得分:3)

我们找到了解决方案:

创建项目时,选择“空”活动。然后,它创建一个MainActivity类,扩展Activity和activity_main.xml布局。

换句话说,它会为您提供之前的行为。

这在ADT 22.6.3中有效。

答案 9 :(得分:2)

在创建新应用程序时, 只需将布局名称复制到片段布局名称(例如activity_main)

瞧!!! 你得到一个没有片段部分的活动。

从活动中删除此部分代码:

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

清理项目。

答案 10 :(得分:1)

空白活动真的应该比这更简单。 目前看来修补程序正在等待处理: https://code.google.com/p/android/issues/detail?id=67513&q=blank%20activity&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

您可以在创建项目时跳过创建活动选项并手动添加活动。

如果您觉得它真的很烦人,可以尝试回滚ADT和SDK:

从以下网址下载22.3 sdk工具:dl-ssl.google.com/android/repository/##您的平台版本的sdk ##

例如,osx是tools_r22.3-macosx.zip

解压缩该文件会为您提供一个名为&#34; tools&#34;的文件夹。用它来替换/ path-to-your-android-installation / android-sdk-macosx /

中找到的同名文件夹

接下来你需要卸载你的eclipse adt插件。去帮助 - &gt;安装新软件单击链接以查看已安装的内容选择所有Android软件包并单击卸载。重启Eclipse

从以下位置下载22.3 ADT插件:http://dl.google.com/android/ADT-22.3.0.zip解压缩此文件

回到eclipse点击帮助 - &gt;安装新软件单击添加并选择刚刚解压缩的本地文件检查要安装的内容并单击安装再次重新启动eclipse

答案 11 :(得分:1)

我是通过将BlankActivity(22.6.2)文件夹替换为android-sdk中tools / templates目录中较旧的sdk BlankActivity(22.6.1)来完成的。

答案 12 :(得分:1)

不确定这是否完全有效, 脚步 1)右键单击您的项目goto properties-&gt; Android,删除参考库并按应用。 现在您会看到项目中的错误转到res-&gt; values-&gt;样式,用parent =“android:Theme.Light”替换AppBasetheme的父级 为所有值文件夹执行此操作,但在values_v14中放置parent =“android:Theme.Holo.Light.DarkActionBar”

2)现在转到MainActivity用“extends Activity”替换“extends ActionBarActivity”。 Eclipse将提示您导入活动。

现在删除这部分代码

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

来自活动类

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

现在删除所有未使用的导入。

3)转到res-&gt; Layouts-&gt; fragment.xml,将片段代码复制到activity_main.xml。 删除fragment.xml。

现在转到main.xml 替换此

    <item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never"/>

通过

    <item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    android:showAsAction="never"/>

4)现在点击Project并清理你的项目

答案 13 :(得分:1)

对于小型项目,创建一个没有活动的项目,并手动添加/编辑活动,布局和清单。

答案 14 :(得分:1)

Android听到了我们的声音:)。

只需升级或download ADT版本升级至23.0.2或更高版本。

现在你可以选择这样的空白活动,

enter image description here