それぞれ独自の目的を持つ3つのタブを備えたシンプルなUIを作成しようとしています。タブを実装する新しい方法はアクションバーとフラグメントを使用することであることを理解していますが、これは私を混乱させます。最終的に、アプリケーションのすべてのロジックが現在1つのかなり大きなアクティビティに含まれているのに対し、より機能的な分離が促進されたことを願っています。プラットフォーム。私がここでやったことはすべて間違っていますか?
私はここに投稿している紳士と多くの共通点があります:Androidレイアウトフラグメント/アクティビティの混乱....残念ながら、彼の質問のほとんどは答えられませんでした。
...そして、基本的に、オンラインで1人の例から、Actionbarを使用してタブを作成する方法についてすべて理解しました。http://arvid-g.de/12/android-4-actionbar-with-tabs-example。(例はあまりありません!)
を取得してActionbar
2つのタブを作成します。
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab calendarTab = actionbar.newTab().setText("Calendar");
ActionBar.Tab logTab = actionbar.newTab().setText("Sleep Log");
Fragment calendarFragment = new CalendarFrag();
Fragment sleepLogFragment = new LogFrag();
calendarTab.setTabListener(new MyTabListener(calendarFragment));
logTab.setTabListener(new MyTabListener(sleepLogFragment));
actionbar.addTab(logTab);
actionbar.addTab(calendarTab);
これが私が作ったこれらの「サブクラス」の中にあるコード全体ですFragment
:
public class CalendarFrag extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.calendar, container, false);
}
}
文字通り、私がするのはビューを膨らませるだけです。ちょっと気分が悪いだけです。そして、私は自分のアプリケーションのすべてのロジックを持っている長い活動をしていますが、これも面倒です。残念ながら、私が設定した方法では、のようなビューに入るコンテンツを動的に生成する必要があります。これはどこかR.layout.calendar
で行う必要があります。
今、私はすべてのコードを動かして多くのエラーに遭遇しています、そしてそれを整理することは本当に価値があるかどうか疑問に思っています-元々私はTabHostとTabWidgetなどでタブを作ろうとしていましたが、それは非推奨。
3つのタブを埋めるために、すべてのコードを1つのアクティビティにまとめる必要がありますか?もっと良い方法はありませんか?これらの空のフラグメントを動的に埋めるロジックをどこに配置する必要がありますか?どういうわけか断片自体で、または別々の活動で私が好むものだと思います。