次の開発プロジェクト

今日の仕事は、フラグメント制御複数ページのスライドを設定することです。

要約、費用、収入:3つのコントロールの合計を設定します。

出典:

三つには、メニューを制御します。

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< メニューのxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" > 

    < 項目は
         アンドロイド:ID = "@ + IDを/ navigation_home」
        アンドロイド:アイコン= "@描画可能/ tab_icon1" アンドロイドタイトル文字列/ title_summary @ = ""  /> 

    < 項目は
         アンドロイド:IDを= "@ + ID / navigation_dashboard" 
        アンドロイド:アイコン= "@描画可能/ tab_icon2" 
        アンドロイド:タイトル= "文字列/ title_income @"  /> 

    < 項目
         アンドロイド:
        アンドロイド:アイコン= "@描画可能/ tab_icon3" 
        アンドロイド:タイトル= "文字列/ title_outlay @"  /> 

</ メニュー>
<?= "1.0"エンコード= "UTF-8" XMLバージョン?> 
< RelativeLayout のandroid:のxmlns = "http://schemas.android.com/apk/res/android" 
    のxmlns:アプリ= "http://schemas.android .COM / APK / RES-オート」
    のxmlns:ツール= "http://schemas.android.com/tools" 
    のandroid:layout_width = "match_parent" 
    のandroid:layout_height = "match_parent" 
    アプリ:layout_behavior = "文字列@ / appbar_scrolling_view_behavior" 
    ツール:コンテキスト= "MainActivity" 
    ツール:showIn = "@レイアウト/ app_bar_main" > 

    < android.support.v4.view。
        
        アンドロイド:layout_width = "match_parent" 
        のandroid:layout_height = "match_parent" 
        アンドロイド:layout_above = "@ + ID /ナビゲーション" 
        アンドロイド:layout_marginBottom = " - 80dp"  /> 

    < android.support.design.widget.BottomNavigationView
         アンドロイド:ID =」 @ + ID /ナビゲーション" 
        アンドロイド:layout_width = "match_parent" 
        のandroid:layout_height = "wrap_content" 
        アンドロイド:背景= "アンドロイド:?のattr / windowBackground" 
        アンドロイド:layout_alignParentBottom = "true"の
        アプリ:メニュー="@メニュー/ナビゲーション」  /> 

</ RelativeLayout>
パッケージnet.hnjdzy.tinyaccount。

輸入android.content.Context;
輸入android.content.Intent;
輸入android.content.SharedPreferences。
輸入android.os.Bundle;
輸入android.support.annotation.NonNull;
輸入android.support.design.widget.BottomNavigationView;
輸入android.support.v4.view.ViewPager;
輸入android.view.View;
輸入android.support.design.widget.NavigationView;
輸入android.support.v4.view.GravityCompat;
輸入android.support.v4.widget.DrawerLayout;
インポートandroid.support.v7.app.ActionBarDrawerToggle;
輸入android.support.v7.app.AppCompatActivity;
輸入android.support.v7.widget.Toolbar;
輸入android.view.Menu;
輸入android.view.MenuItem;
輸入android.widget.TextView; 

輸入net.hnjdzy.tinyaccount.activity.AboutActivity;
輸入net.hnjdzy.tinyaccount.activity.HelpActivity;
輸入net.hnjdzy.tinyaccount.activity.RegisterActivity;
輸入net.hnjdzy.tinyaccount.activity.SettingActivity;
輸入net.hnjdzy.tinyaccount.adapter.ViewPagerAdapter;
輸入net.hnjdzy.tinyaccount.fragment.IncomeFragment;
輸入net.hnjdzy.tinyaccount.fragment.OutlayFragment;
輸入net.hnjdzy.tinyaccount.fragment.SummaryFragment; 

/ ** 
 *主界面、导航、测边菜单
 * @author androiddev @ 163.com、hnjdzy
  * / 
パブリック クラス MainActivityが拡張AppCompatActivity
         実装NavigationView.OnNavigationItemSelectedListener { 

    プライベートViewPager viewPagerを。

    @Override 
    保護された ボイドのonCreate(バンドルsavedInstanceState){
         スーパー.onCreate(savedInstanceState)。
        setContentView(R.layout.activity_main)。
        ツールバーツールバー= (ツールバー)findViewById(R.id.toolbar)。
        setSupportActionBar(ツールバー)。

        DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。
        ActionBarDrawerToggleトグル = 新しいActionBarDrawerToggle(
                 この、引き出し、ツールバー、R.string.navigation_drawer_open、R.string.navigation_drawer_close)。
        drawer.addDrawerListener(トグル)。
        toggle.syncState(); 

        NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view)。
        navigationView.setNavigationItemSelectedListener(この);

        BottomNavigationViewナビゲーション = (BottomNavigationView)findViewById(R.id.navigation)。
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)。

        viewPager = (ViewPager)findViewById(R.id.viewpager)。
        setupViewPager(viewPager)。




    } 

    @Override 
    公共 ボイドonBackPressed(){ 
        DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。
        もし(drawer.isDrawerOpen(GravityCompat.START)){ 
            drawer.closeDrawer(GravityCompat.START)。
        } {
             スーパー.onBackPressed()。
        } 
    } 

    @Override 
    パブリック ブールonCreateOptionsMenu(メニューメニュー){
         // メニューを膨らま。それが存在する場合、これはアクションバーに項目を追加します。
        getMenuInflater()(R.menu.main、メニュー)を膨らませます。
        返す ; 
    } 

    @Override 
    パブリック ブールonOptionsItemSelected(MenuItemのアイテム){
         // ここでハンドル・アクション・バー項目をクリック。アクションバーがします
         // 自動的に限り、ホーム/ Upボタンのクリックを扱う
         // あなたはAndroidManifest.xmlにで親アクティビティを指定して。
        int型ID = item.getItemId()。

        // noinspection SimplifiableIfStatement 
        場合(ID == R.id.action_settings){ 
            意図意図 = 新しいテント(この、RegisterActivity。クラス)。
            startActivity(インテント)。
            返す ; 
        } 

        戻り スーパー.onOptionsItemSelected(アイテム)
    } 

    // 左侧边菜单栏的事件处理 
    @SuppressWarnings( "StatementWithEmptyBody" 
    @Override 
    パブリック ブールonNavigationItemSelected(MenuItemのアイテム){
         //ナビゲーションビューアイテムのこちらをクリック壁紙ハンドル。
        のInt ID = item.getItemId(); 

        IF(ID == R.id.nav_manage){
             // セットインタフェース、メンテナンスカテゴリ 
            テントテント= 新しい新しいテント(これ、SettingActivity。クラス); 
            startActivity(インテント); 
        } そう IF(ID == R.id.nav_share){
             // 共有 
        }  IF(ID == R.id.nav_send){
             // レポート 
        }  IF(ID ==R.id.nav_help){
             // 帮助界面 
            テント意図= 新しいテント(この、HelpActivity。クラス)。
            startActivity(インテント)。
        } 
        そう であれば(ID == R.id.nav_about){
             // 关于软件 
            テント意図= 新しいテント(この、AboutActivity。クラス)。
            startActivity(インテント)。
        } 
        DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。
        drawer.closeDrawer(GravityCompat.START)。
        リターン trueに; 
    } 

    // 処理するナビゲーション・イベントの下の
    プライベートBottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
             = 新新BottomNavigationView.OnNavigationItemSelectedListener(){ 

        @Override 
        公共 ブールonNavigationItemSelected(@NonNullのMenuItemアイテム){
             スイッチ(item.getItemId()){
                 ケースR.id.をnavigation_home:
                    viewPager.setCurrentItem( 0 );
                     戻り値 をtrueにケースR.id.navigation_dashboard:
                    viewPager.setCurrentItem(。1);
                     戻り値 をtrueにケースR.id.navigation_notifications:
                    viewPager.setCurrentItem( 2 );
                     戻り値 をtrueにデフォルトBREAK ; 
            } 
            リターン falseに; 
        } 
    }; 

    // ナビゲーションフラグメントの下部に対応する作成
    プライベート 無効setupViewPagerを(ViewPager viewPager){ 
        ViewPagerAdapterアダプタ = 新しい新しいViewPagerAdapter(getSupportFragmentManager())。
        SummaryFragment F1 = 新しい SummaryFragment()。
        IncomeFragment F2 = 新しいIncomeFragment(); 
        OutlayFragment F3 = 新しいOutlayFragment(); 
        adapter.addFragment(F1)。
        adapter.addFragment(F2)。
        adapter.addFragment(F3)。
        viewPager.setAdapter(アダプタ)。
    } 
}

 

おすすめ

転載: www.cnblogs.com/w669399221/p/12319376.html