Android アプリでは、4 つのタブで構成される TabBar を使用しています。4 つのタブのすべてのオブジェクトを取得する必要があります。どのようにこれを達成することができますか、任意の提案。
2 に答える
0
私は2つの明白なアプローチを考えることができます:
- アクティビティを取得するために提供される関数
LocalActivityManager
(すべてActivityGroup
の で、したがってで使用できる必要があります) を使用します。を呼び出しTabActivity
て現在選択されているものを取得するか、 :の一部として使用されたタグを渡すことでいずれかを取得できます。Activity
getCurrentActivity()
TabSpec
getActivity(String id)
- アクティビティに対するタグの独自のローカル マッピングを作成し、それらをルックアップに使用します。たとえば、
Map<String, Activity>
.
どちらの場合もActivity
、独自のメソッドにアクセスするには、ジェネリックを独自の実装にキャストする必要があります。アクティビティがすべて同様のメソッドを実装する必要がある場合は、それらのメソッドを宣言するインターフェイスを使用し、そのインターフェイスをキャスト/マッピングに使用することをお勧めします。例えばMap<String, ITabbedActivity>
。
または、 ごとに 1 つのメンバー変数を使用して、さまざまなアクティビティを追跡することもできますActivity
。そうすれば、キャストを避けることができます。4 つ以上のタブを扱っている場合は、このアプローチをお勧めしません。
于 2012-04-13T14:24:43.037 に答える
0
TabHost.TabSpec spec; // This is the Object of TabBar
Intent intent;
// Single Activity
intent = new Intent().setClass(this, Home.class);
spec = tabHost.newTabSpec(getResources().getString(R.string.Home)).setIndicator(getResources().getString(R.string.Home),res.getDrawable(R.drawable.home)).setContent(intent);
tabHost.addTab(spec);
このようにさまざまなタブを追加できるようになりました
于 2012-04-13T13:42:47.437 に答える