2011-07-04 10 views
0

うまく動作するパスワードジェネレータアプリを作ったが、パスワードを保存できるように更新したい。ユーザーに生成されたパスワードが表示され、そのうちの1つを保存するオプションと、保存されたパスワードを持つ別のタブがあるタブを1つ作成します。私はdeveloper.android.comのチュートリアルを見ましたが、タブごとに個別のアクティビティを作成する必要はありません。私はXAMLとC#を使用してWPFアプリケーションを作成するためにタブを使用しました。ここでは、XAMLコードでTabControlとTabItemを使用するだけです。これに似た何かをすることは可能ですか?Androidでタブを使用する

答えて

1

ただし、タブごとに個別のアクティビティを作成する必要はありませんが、タブごとにレイアウトを設定する必要があります。 TabHostTabWidget、およびFrameLayoutが必要です。 TabWidgetFrameLayoutTabHostの子でなければならず、特定のIDが割り当てられている必要があります。 TabWidgetのIDはandroid.R.id.tabsでなければなりません。 FrameLayoutのIDはandroid.R.id.tabcontentでなければなりません。 に(TabHostの任意の部分の)ViewまたはLayoutを追加する必要があります。次にすべてをリンクするTabSpecを作成する必要があります。これはちょっとこのように見えます(プログレッシブ)。

TabHost host = new TabHost(context); 
TabWidget widget = new TabWidget(context); 
widget.setID(android.R.id.tabs); 
FrameLayout frame = new FrameLayout(context); 
frame.setID(android.R.id.tabcontent); 
frame.addView(viewForTab1); 
frame.addView(viewForTab2); 
host.addView(widget); 
host.addView(frame); 
host.setup(); //must be called when defining a tabhost outside of a tabactivity, iirc.. 
TabSpec spec; 
do { 
    spec = host.newTabSpec(uniqueStringReference); 
    spec.setContent(viewOrLayoutForTheTab); 
    spec.otherStuffYouMightWant(); 
    host.addTab(spec); 
} while (you have tabs to add); 
+0

Aにはいくつか質問があります。 TabHost、TabWidget、およびFrameLayoutがmain.xmlファイルに既にある場合、新しいオブジェクトを作成する代わりにfindViewById(R.id.nameOfView)を使用できませんでしたか?それで、私はフレームやウィジェットやフレームをTabHostに追加しなければならないとは思わない。また、uniqueStringReferenceは何ですか? –

+0

私はあなたがfindViewByIdを使うことができると確信しています。個人的にはXMLを多用していません - 私はコードを使って私の大部分をやりたいので、スクリーン。しかし、あなたが言うことはおそらく動作するでしょう。私が信じる 'uniqueStringReference'は、それが一意であるかぎり、あなたが望むものです。それはあなたがそれを取得する必要がある場合は、タブの参照のためにあなたが使用するものです(ビューのIDのようなものです)。少なくとも、私はそれが目的であると信じています。私はしばらくのうちにAPIを見ていません。 –