2017-07-12 8 views
0

Android Studioを使用して簡単なAndroidアプリを構築しようとしています。アプリはメインレイアウトと10以上のサブレイアウトを持っています。ユーザーはボタンを押すだけでサブレイアウトの1つに移動します。ユーザーは、戻るボタンを押してメインレイアウトに戻ります。各サブレイアウトは、メインレイアウトまたは他のサブレイアウトとの関係や依存関係のないスタンドアロンレイアウトです。複数のレイアウトを持つ単純なAndroidアプリ

私は複数のチュートリアルを読み、多くの例を見てきました。私は、この単純なアプリケーションとそのサブレイアウトを構築するためにどのAndroidコンポーネントを使用すべきかを理解しようとしています。

Iは、まず、各サブレイアウトは活性である行う試み、そしてIはサブレイアウトの一方に主レイアウトから切り替えること

Intent intent = new Intent(this, DistPerVol.class); 
startActivity(intent); 

を用います。ただし、各サブレイアウトは個別のアクティビティであるため、アプリのインストール時にアプリ画面に複数のアイコンが表示されます。

Iは、次だけつの活性を使用してサブレイアウトの一方に主レイアウトから切り替えること

setContentView(R.layout.dist_per_vol); 

を使用してサブレイアウトへの切り替えを試みました。しかし、これにより、メインのレイアウトにバックアップするのではなく、戻るボタンがアプリを離れるようになりました。

今日、NavigationDrawer、ActionBar、およびフラグメントについて読みました。私は別のコンポーネントを試し続けたくありません。ユーザーがサブレイアウトを選択できるようにするメインレイアウトが必要で、バックボタンはメインレイアウトに戻りますが、複数のアクティビティはありません。その実装にはどのようなAndroidコンポーネントを使用する必要がありますか?

おそらく、複数のアクティビティが適切な方法ですが、私はAndroidManifest.xmlを間違って構築しています。ここに私のAndroidManifest.xmlがあります

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="edu.byui.cit360.calculators"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

     <activity android:name=".Calculators"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".ComparePrices"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Tip"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".DistPerVol"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 
+0

あなたのManifest.xmlを共有してください(私はホーム画面の複数のアプリアイコンについて興味があります、これは起こらないはずです) – 0X0nosugar

+1

画面上に複数のアイコンがあります。これまでのアクティビティでランチャー用のインテントフィルタを配置しました。それはあなたの主な活動の中だけにあるべきです。 –

+0

'それを実装するためにどのAndroidコンポーネントを使用すべきですか? ' – EpicPandaForce

答えて

1

Gabe Sechanが指摘したように、ちょうどActivityの1つにインテントフィルターが必要です。その後、ホーム画面にはランチャーアイコンが1つだけ表示され、ユーザーに表示されるアプリ内の最初のActivityにはインテントフィルター付きのActivityが表示されます。

Fragmentではなく、複数のActivityのアプリを書くことができます。 (実際には、Android 3.0以前はみんながそうしていました。)これらのアプリはActionBarやNavigationDrawerのような機能を持つこともできます。

複雑なように見えるので、最初はFragmentが嫌な場合があります。しかし、それらを使用することも利点を提供します。例えば、ActivityといくつかのFragmentのアプリで同じナビゲーションドローアを使用することができます(Activityで設定が可能)

1

フラグメンテーションはそれに最適なクラスです。

フラグメントは、 アクティビティの動作またはユーザーインターフェイスの一部を表します。 https://developer.android.com/guide/components/fragments.html

あなたはFragmentManagerへの感謝を示すために、どのフラグメントを管理するために、活動にあなたのボタンを置くことができます。あなたが任意のリストの要素をクリックするたびにあなたは意志、このタイプの実装のためのリストビューを使用する主なレイアウト(または主な活動)としてリストビューを作成し、すべてのリスト要素で、これによりOnclickListenerを添付してください

http://sapandiwakar.in/replacing-fragments/

関連する問題