0

4つのタブを実装するCashSalesアプリを作成しています。1番目のタブからユーザーは顧客リストから顧客を選択し、2番目のタブはアイテムリストからアイテムを選択し、3番目のタブは7EditText秒で支払いの詳細を設定し、4番目のタブはドラフトを表示してSQLiteに保存することを確認します。いくつか質問があります。

  1. FragmentActivityタブの場合、最初に次のように拡張してタブコンテナを作成する必要があります。

    public class CashSales extends FragmentActivity {
    
        private FragmentTabHost mTabHost;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.cash_sales_tab);
            mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
            mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
    
            mTabHost.addTab(mTabHost.newTabSpec("customer").setIndicator("customer"),
                    CustomerSelect.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("item").setIndicator("item"),
                    ItemSelect.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("payment").setIndicator("payment"),
                    SetPayment.class, null);
            mTabHost.addTab(mTabHost.newTabSpec("payment").setIndicator("payment"),
                    DraftViewAndSave.class, null);
        }
    }
    
  2. CustomerSelectなどのアクティビティごとに異なるクラスを作成する必要がありますItemSelectか?別のクラスを作成する必要がある場合は、FragmentクラスまたはFragmentActivityクラスから拡張する必要がありますか?

  3. ユーザーが1番目のタブから2番目のタブに移動するときにデータを記憶するにはどうすればよいですか?セッションを使用して、最終的にセッションからデータベースにデータを保存する必要がありますか?

みんな私はAndroidが初めてです。これについて私を助けてください、またはサンプルリンクを送ってください。

4

1 に答える 1

1

私は同じことを実装したので、私の考えを共有しています。

For tab, should I create a tab container first by extending FragmentActivity

を拡張するクラスを作成する必要がありますFragmentActivity。しかし、私が使用したタブと、4つの異なる(あなたの場合はCustomerSelect、ItemSelectなど)とスワイプを保持するカスタムタブを使用して、フラグメントにデータを保存しViewPager、FragmentActivityからメソッドを呼び出して、クラスからオブジェクトを取得できますFragmentPagerAdapterFragnmentBundlepublicBundlefragment

Should I create different classes for each of the activities like CustomerSelect, ItemSelect etc?

はい、そうすべきです。

How can I memorize the data when user will go from 1st tab to 2nd tab? Should I use Session and finally save data from session to database?

上記のように、バンドル オブジェクトにデータを保存してから、FragmentActivity のonPageSelectedようなメソッドで保存メソッドを呼び出すことができます。

private Bundle firstFragmentData;

  mPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {

                switch (arg0) {
                case 1:

                    fragment1 = (MyFirstFragment) getSupportFragmentManager()
                            .findFragmentByTag(
                                    "android:switcher:" + R.id.pager + ":"
                                            + (arg0 - 1));
                    firstFragmentData = fragment1.SaveDatainFragment1();

                    break;

getters実際には、メインの FragmentActivity のように、さまざまなフラグメントから取得するすべてのバンドル オブジェクトに対してを設定する必要があります。

public Bundle getFirstFragmentData() {
     return firstFragmentData;  
 }

これで、任意のフラグメントで、このようなフラグメントデータを取得できます..

Bundle firstFragmentData = ((MainFragmentActivity) getActivity())
                        .getFirstFragmentData(); // here you got the bundle 

これが役立つことを願っています。

于 2013-02-26T09:58:04.963 に答える