1

レシピを練習として保存するための小さなAndroidアプリケーションを作成しようとしています。新しいレシピを追加するために、タブを使用しようとしています。3つのタブがあります。

  1. 材料
  2. 手順
  3. メディア

「材料」にはListViewを、「Steps」にはListViewを、「Media」には画像のギャラリーを持たせたいのですが。オプションメニューのいくつかのオプションを使用して、新しい材料、手順、およびメディアを追加します。終了したら、すべてをSQLiteデータベースに書き込みたいと思います。

タブごとに異なるアクティビティを使用する必要があるのか​​、それとも異なるビューを使用する必要があるのか​​疑問に思っていますか?

異なるアクティビティを使用する場合、アクティビティ間で情報を渡すのは難しいですか?

異なるビューを使用する場合、ビューはすべて同じレイアウトファイルの一部である必要がありますか?たとえば、TabWidgetsのチュートリアルは次のことを行います。

<FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView 
            android:id="@+id/textview1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a tab" />
        <TextView 
            android:id="@+id/textview2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is another tab" />
        <TextView 
            android:id="@+id/textview3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:text="this is a third tab" />
</FrameLayout>

したがって、すべてのTextViewは同じFrameLayout内にあり、各TextViewは1つのタブにのみ使用されます。ビューがもっと複​​雑な場合、たとえば、何かが他の何かの中にネストされていて、それが再び他の何かの中にネストされている場合、これは少し混乱すると思います。タブごとに異なるアクティビティを使用して、タブごとに異なるレイアウトファイルを指定できます。

4

2 に答える 2

4

タブごとに異なるアクティビティを使用する必要があるのか​​、それとも単に異なるビューを使用する必要があるのか​​疑問に思っています。

アクティビティをタブ コンテンツとして使用することは非推奨になりました。まだそれを行うことはできますが、このプロジェクトを始めたばかりの場合は、代わりにビューを使用する方が良い方法です。

異なるアクティビティを使用すると、アクティビティ間で情報を渡すのが難しくなりますか?

はい、いいえ。ただし、それは専門知識のレベルによって異なります。アクティビティ間で情報を渡すには、通常、インテントを使用する必要があります (他の方法もあります)。これはスタンドアロンであってもタブ環境の一部であっても同じですが、違いはありませんが、少し考える必要があります。

異なるビューを使用する場合、それらのビューはすべて同じレイアウト ファイルの一部である必要がありますか?

いいえ、TabActivity を使用して開始するときに、そのチュートリアルのアプローチを試してみることをお勧めします。

(任意の種類のアクティビティに対して) さまざまなレイアウトを用意し、必要に応じて自分で膨らませることができますが、それはより複雑なトピックです。

于 2011-07-31T22:36:22.703 に答える
1

どちらが良いかはわかりませんが、異なるアクティビティ間で情報を渡すのが難しいかどうかについての質問に基づいて、実行するのはかなり簡単です。

activityA と activityB の 2 つのアクティビティがあり、A から B に情報を送信する場合は、次のように使用できます。

Intent intent = new Intent(activityAClassName.this, activityBClassName.class);
intent.putExtra("keyName", "value");
startActivity(intent);

次に、アクティビティ B のアクティビティ A から値を取得し、このコードをアクティビティ B に取得します。

Bundle bundle = this.getIntent().getExtras();
string value = bundle.getString("keyName");

お役に立てれば

于 2011-07-31T22:28:22.367 に答える