用片段活动创build的ADT空白活动

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

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

第一张图片空白活动

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

第二张图片空白活动

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

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

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

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

在这一点上,你应该都准备好运行这个项目。

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

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

  • findtemplate.xml文件并find下面的一段代码

      <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"

  • findrecipie.xml.ftl并find下面的一段代码
    <instantiate from="res/layout/fragment_simple.xml.ftl" to="${escapeXmlAttribute(resOut)}/layout/${fragmentLayoutName}.xml" />
    并评论整个行。

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

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

现在当你尝试创build一个新的活动,你会得到这个屏幕 新的活动没有片段

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

这在空白活动的情况下适用于我。 我不知道这是否是正确的方法,丢弃碎片和所有,但这对我有用。

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

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

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

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

这是我第一次看到android-review.googlesource.com。 挖掘周围我没有看到一种方式来下载补丁集放在一起,我不确定如何“樱桃select”tools_r22.6,如果有一个线程解释它的链接将不胜感激。

这是我如何去做的。

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

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

将BlankActivities_copy重命名为EmptyActivities

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

在文件部分有一个链接列表。 每个链接都指向您需要添加到您创build的新EmptyActivities文件夹的xml。

将右窗格中的xml复制到左窗格顶部的path\文件(链接也是path)。 如果文件已经存在,则删除内容并进行replace。 如果文件不存在,创build它并将xml复制到文件中。

重复每个链接。

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

谢谢你在谷歌Josiah Gaskin与令人难以置信的2天转机!

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

如果您下载最新的ADT 22.6.3 (使用构build工具19.0.3),您将可以select创build一个不使用碎片的新空白Activity

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

对此的解决scheme是在%Wherever your ADT bundle is%\sdk\tools\templates\activities\下的旧版“空白活动”的副本。

如果某人有较旧版本的版本,则可以将其重新命名,将其放置在%Wherever your ADT bundle is%\sdk\tools\templates\activities\ ,然后在启动项目时select此文件夹而不是“空白活动” ,所以如果你有一个副本,请分享。

我们find了一个解决scheme:

当你创build一个项目时,select“空”活动。 然后创build一个扩展Activity和一个activity_main.xml布局的MainActivity类。

换句话说,它给了你之前的行为。

这在ADT 22.6.3工作。

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

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

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

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

清理项目。

一个空白的活动应该比这更简单。 看起来目前正在解决一个问题: https : //code.google.com/p/android/issues/detail?id=67513&q=blank%20activity&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

创build项目并手动添加活动时,可以跳过创build活动选项。

如果你发现真的很烦人,你可以尝试回滚ADT和SDK:

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

例如osx是tools_r22.3-macosx.zip

解压缩该文件会给你一个名为“工具”的文件夹使用这个来replace/ path-to-your-android-安装/ android-sdk-macosx /

接下来你需要卸载你的eclipse adt插件。 去帮助 – >安装新软件点击链接,看看已经安装了什么select所有的Android软件包,然后点击卸载。 重新启动Eclipse

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

回到eclipse点击帮助 – >安装新软件点击添加,然后select你刚才解压的本地文件检查你想安装的内容,然后点击安装再次重启eclipse

我通过将BlankActivity(22.6.2)文件夹replace为android-sdk中工具/模板目录中较旧的sdk BlankActivity(22.6.1)来完成。

不知道这是否完全工作,步骤1)右键单击您的项目转到属性 – > Android,删除参考库,然后按应用。 现在你会看到你的项目中的错误去res-> values->样式,replaceAppBasetheme的父母通过parent =“android:Theme.Light”做所有值的文件夹除了values_v14那里把父=“android:Theme.Holo .Light.DarkActionBar”

2)现在转到MainActivity,用“extends Activity”replace“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-> Layouts-> fragment.xml,将片段代码复制到activity_main.xml中。 删除fragment.xml。

现在转到main.xmlreplace这个

  <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并清理你的项目

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

Android听到我们的声音:)。

只需升级或下载 ADT版本到23.0.2或更高。

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

在这里输入图像描述