web-dev-qa-db-ja.com

フラグメントアクティビティで作成されたADT空白アクティビティ。

私が本当に混乱しているのは、新しいAndroidアプリを空のアクティビティで作成するときは常にfragment_main.xmlで出てくるからです。フラグメントのないアクティビティを作成したかっただけです。 。

最初の画像では、空のアクティビティにフラグメントレイアウトが含まれています。

first image blank activity

2番目の画像は、作成されたfragment_mainを示しています

second image blank activity

今、私は本当に混乱しています...これは、ADTをこのスレッドに言及した最新バージョンに更新した後にのみ発生しました: https://stackoverflow.com/questions/22203862/adt-doesnt-create-default-hello -world-but-command-line-does#=

私はAndroidフラグメントビューのない空のアクティビティのアプリを作りたい...

35

プロジェクトからフラグメントを削除する方法の説明が必要な場合:

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

この時点で、プロジェクトを実行する準備がすべて整いました。

27
Ben Jakuben

以前のテンプレートを使用するには、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" />
    そして行全体をコメントします。

  • SampleActivity.Java.ftlroot/src/app_package内のファイルを見つけ、これらの2行を削除します
    _<#include "include_options_menu.Java.ftl"> <#include "include_fragment.Java.ftl">_

  • fragment_simple.xml.ftlactivity_fragment_container.xml.ftlroot/res/layout内のファイルを見つけます。 fragment_simple.xml.ftlファイルの内容をactivity_fragment_container.xml.ftlファイルにコピーします。

新しいアクティビティを作成しようとすると、この画面が表示されます new activity without fragment

Fragment Layout Nameフィールドは空白のままでかまいません。

これは、空のアクティビティの場合にうまく機能します。これがフラグメントやすべてを破棄する正しいアプローチであるかどうかはわかりませんが、これはうまくいきます。

7
saran

これは、ADTバージョン22.6.0の新機能です。 http://developer.Android.com/tools/sdk/Eclipse-adt.html

Edit:最新のADT更新では、フラグメントのない「空のアクティビティ」と呼ばれる新しいテンプレートがあります。 Activityを拡張する単純なクラスです(デフォルトメニューがなくても)。

ActionBarActivityを拡張し、フラグメントを持つ「ブランクアクティビティ」もあることに注意してください。

6
Muzikant

これを報告してくれた人に感謝します https://code.google.com/p/Android/issues/detail?id=6751

これは、Android-review.googlesource.comを初めて垣間見たものです。調べてみると、パッチセットをダウンロードする方法がわかりませんでした。また、tools_r22.6を「チェリーピック」する方法がわかりません。

ここに私がそれについて行った方法があります。

マシンでSDKフォルダーに移動し、\ tools\templates\activitiesに移動します

BlankActivitiesフォルダーをコピーして、同じディレクトリーに貼り付けます。

BlankActivities_copyの名前をEmptyActivitiesに変更します

https://Android-review.googlesource.com/#/c/88890/4 に移動します

[ファイル]セクションの下に、リンクのリストがあります。各リンクから、作成した新しいEmptyActivitiesフォルダーに追加する必要があるxmlに移動します。

右側のペインから左側のペインの上部にあるパス\ファイルにXMLをコピーします(リンクもパスでした)。ファイルが既に存在する場合は、内容を削除して置き換えます。ファイルが存在しない場合は、作成して、xmlをファイルにコピーします。

各リンクについて繰り返します。

Eclipseを閉じて再度開きます。エディターで開いているファイルがある場合、Eclipseはクラッシュします。

GoogleのJosiah Gaskinに、信じられないほどの2日間の納期に感謝します!

BlankActivityのフラグメントについて言及しているトレーニング資料はありません。この修正により、新しいIDEを学習する際に、フラグメントをナビゲートする方法を見つけようとする無数の時間が節約できたと確信しています。再度、感謝します。

5
Chris

最新のADT 22.6.3(ビルドツール19.0.3を使用)をダウンロードすると、フラグメントを使用しない新しい空のActivityを作成するオプションがあります

4
EyalBellisha

フラグメント部分をアプリに含めたくない場合は、プロジェクトセットアップウィザードで「アクティビティを作成」オプションを解除し、次に「アクティビティとレイアウトを手動で作成あなたのプロジェクト。

3
Shubham Naik

これに対する解決策は、%Wherever your ADT bundle is%\sdk\tools\templates\activities\の古い「ブランクアクティビティ」のコピーです。

誰かがそれより古いバージョンを持っている場合、名前を変更してここに配置することができます%Wherever your ADT bundle is%\sdk\tools\templates\activities\、プロジェクトを開始するとき、「ブランクアクティビティ」の代わりにこのフォルダを選択します。

3
user3459475

これに対する解決策を見つけました。

プロジェクトを作成するときに、「空の」アクティビティを選択します。次に、Activityおよびactivity_main.xmlレイアウトを拡張するMainActivityクラスを作成します。

言い換えれば、それはあなたに前にあった行動を与えます。

これはADT 22.6.3で機能しました。

3
Walker Rowe

私も同じ問題に直面しています。 Eclipseを削除し、再びADTバンドルを http://developer.Android.com/sdk/index.html#download からダウンロードしました。以前のプロジェクトを復元するには、ワークスペースを前回のもの。これは私のために働いた。

3
Sravani

新しいアプリケーションの作成中に、レイアウト名をフラグメントレイアウト名にコピーするだけです(例:activity_main)

出来上がり!!!フラグメント部分のないアクティビティを取得します。

アクティビティからコードのこの部分を削除します。

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

プロジェクトをきれいにします。

2
Rashid

これが完全に機能するかどうかわからない場合は、手順1)プロジェクトを右クリックして[プロパティ]-> [Android]を選択し、参照ライブラリを削除して[適用]を押します。プロジェクトのエラーはres-> values-> stylesに移動し、AppBasethemeの親をparent = "Android:Theme.Light"に置き換えます。values_v14を除くすべての値フォルダーに対してこれを行い、parent = "Android:Theme.Holoを配置します.Light.DarkActionBar "

2)MainActivityに移動して、「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.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)[プロジェクト]をクリックして、プロジェクトを削除します

1
Gaurav Pangam

Androidは私たちの声を聞きました:)。

アップグレードするか、 ダウンロード ADTバージョンを23.0.2以降にアップグレードしてください。

これで、このような空白のアクティビティを選択できます。

enter image description here

1
Burak

小さなプロジェクトの場合、アクティビティなしでプロジェクトを作成し、アクティビティ、レイアウト、およびマニフェストを手動で追加/編集します。

1
antrunner

BlankActivity(22.6.2)フォルダーを、Android-sdkのtools/templatesディレクトリーにある古いsdk BlankActivity(22.6.1)に置き換えることでそれを行いました。

1
Hari_krish4

空白のアクティビティは、実際にはこれよりも単純でなければなりません。現在修正が保留されているようです: https://code.google.com/p/Android/issues/detail?id=67513&q=blank%20activity&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

プロジェクトを作成してアクティビティを手動で追加する場合、アクティビティの作成オプションをスキップできます。

本当に面倒な場合は、ADTとSDKをロールバックしてみてください。

Dl-ssl.google.com/Android/repository/##sdkのプラットフォームのバージョンはこちらから22.3 SDKツールをダウンロードします##

たとえば、osxはtools_r22.3-macosx.Zipです

そのファイルを解凍すると、「tools」というフォルダーが作成されます。これを使用して、/ path-to-your-Android- installation/Android-sdk-macosx /にある同じ名前のフォルダーを置き換えます。

次に、Eclipse adtプラグインをアンインストールする必要があります。ヘルプに移動->新しいソフトウェアのインストールリンクをクリックして、すでにインストールされているものを確認しますAndroidパッケージをすべて選択し、アンインストールをクリックします。Eclipseを再起動します。

次から22.3 ADTプラグインをダウンロードします。 http://dl.google.com/Android/ADT-22.3.0.Zip このファイルを解凍します

Eclipseに戻り、ヘルプをクリック->新しいソフトウェアをインストール[追加]をクリックして、解凍したローカルファイルを選択しますインストールするものをチェックし、[インストール]をクリックしますEclipseを再起動します

1
Greg Prevost