简体   繁体   English

片段切换

[英]Fragment switching

I am new to android..nd right now i am developing an app in which i have used tabs and extended it as fragmentactivity..and each tab is a fragment.i have a certain tab in which i have a list view on which if i click i have opened a detailed view...i have added a button on detailedview..so that when user clicks on that button,a API ping is done,and on onpostexecute()the app should go to the second tab...but its not working..right now i am navigating it to..fragmentactivity i.eLIVESEEDSACTIVITY and bydefault to the firsttab....but the requirement is SECOND TAB. 我现在是android..nd的新手,我正在开发一个应用程序,其中我使用了选项卡并将其扩展为fragmentactivity ..而每个选项卡都是一个fragment.i有一个特定的选项卡,其中有一个列表视图,如果我单击我已打开详细视图...我在detailview ..上添加了一个按钮,以便当用户单击该按钮时,API ping完成,并且在onpostexecute()上,该应用程序应转到第二个选项卡。 。但它不起作用..现在我正在将其导航到.fragmentactivity即iLIVESEEDSACTIVITY,默认情况下为firsttab ....但要求是第二Tab。

DetailView : DetailView

if(val.contains("success"))
{
    Intent intent = new Intent(getApplicationContext(),LiveSeedsActivity.class);
    intent.putExtra("login", val);
    Log.d("srafasfddddddddddddd",String.valueOf(val));
    startActivity(intent);
}else{
    Toast.makeText(getApplicationContext(),"Insufficient Seeds", Toast.LENGTH_LONG).show();
}

LiveSeedActivity : LiveSeedActivity

package com.yw.ngageapp.liveseeds;


public class LiveSeedsActivity extends FragmentActivity implements OnClickListener{



    @SuppressLint({ "InlinedApi", "NewApi" }) @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.liveseeds_layout);
        this.setTitle("n-gage");
        btn1 = (ImageButton) findViewById(R.id.btn1);
        btn1.setOnClickListener(this);

        btn2 = (ImageButton) findViewById(R.id.btn2);
        btn2.setOnClickListener(this);

        btn3 = (ImageButton) findViewById(R.id.btn3);
        btn3.setOnClickListener(this);

        btn4 = (ImageButton) findViewById(R.id.btn4);
        btn4.setOnClickListener(this);

        btn5 = (ImageButton) findViewById(R.id.btn5);
        btn5.setOnClickListener(this);

        btn6 = (ImageButton) findViewById(R.id.btn6);
        btn6.setOnClickListener(this);

        btn7 = (ImageButton) findViewById(R.id.btn7);
        btn7.setOnClickListener(this);
        txt1 = (TextView) findViewById(R.id.txt1);
        txt2 = (TextView) findViewById(R.id.txt2);
        txt3 = (TextView) findViewById(R.id.txt3);
        txt4 = (TextView) findViewById(R.id.txt4);
        txt5 = (TextView) findViewById(R.id.txt5);
        txt6 = (TextView) findViewById(R.id.txt6);
        txt7 = (TextView) findViewById(R.id.txt7);
        Intent intent = getIntent();
        Log.d("Intentssssssss",String.valueOf(intent.getAction()));

        mTabHost = (TabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup();


        TabHost.OnTabChangeListener tabChangeListener = new TabHost.OnTabChangeListener() {


            @Override
            public void onTabChanged(String tabId) {
                android.support.v4.app.FragmentManager fm =   getSupportFragmentManager();

                Myseeds_fragment Fragment1 = (Myseeds_fragment) fm.findFragmentByTag("Myseeds");

                Fragment2 = (DonatedPage) fm.findFragmentByTag("Donated");

                CausesPage Fragment3 = (CausesPage) fm.findFragmentByTag("Causes");

                FragementTab2 Fragment4 = (FragementTab2) fm.findFragmentByTag("Earn");


                android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();


                if(Fragment1!=null)
                    ft.detach(Fragment1);

                if(Fragment2!=null)
                    ft.detach(Fragment2);


                if(Fragment3!=null)
                    ft.detach(Fragment3);

                if(Fragment4!=null)
                    ft.detach(Fragment4);


                if(tabId.equalsIgnoreCase("Myseeds")){

                    if(Fragment1==null){        

                        ft.add(android.R.id.tabcontent,new Myseeds_fragment(), "Myseeds");                      
                    }else{

                        ft.attach(Fragment1);                       
                    }

                }

                else if(tabId.equalsIgnoreCase("Donated")){ 
                    /** If current tab is apple */
                    Log.v("exhibitors","apple intabselect");
                    if(Fragment2==null){

                        ft.add(android.R.id.tabcontent,new DonatedPage(), "Donated");                       
                    }else{
                        /** Bring to the front, if already exists in the fragmenttransaction */
                        ft.attach(Fragment2);                       
                    }
                }



                else if(tabId.equalsIgnoreCase("Causes")){ 
                    /** If current tab is apple */
                    Log.v("exhibitors","apple intabselect");
                    if(Fragment3==null){

                        ft.add(android.R.id.tabcontent,new CausesPage(), "Causes");                     
                    }else{

                        ft.attach(Fragment3);                       
                    }
                }

                else if(tabId.equalsIgnoreCase("Earn")){ 
                    /** If current tab is apple */
                    Log.v("exhibitors","apple intabselect");
                    if(Fragment4==null){

                        ft.add(android.R.id.tabcontent,new FragementTab2(), "Earn");                        
                    }else{

                        ft.attach(Fragment4);                       
                    }
                }



                ft.commit();                
            }
        };

        Log.v("exhibitors","in5");

        mTabHost.setOnTabChangedListener(tabChangeListener);


        View tabview = createTabView(context,"My Seeds");
        View tabview1 = createTabView(context,"Donated");
        View tabview2 = createTabView(context,"Causes");
        View tabview3 = createTabView(context,"Earn");


        TabHost.TabSpec tSpecAndroid = mTabHost.newTabSpec("Myseeds");
        tSpecAndroid.setIndicator(tabview);        
        tSpecAndroid.setContent(new DummyTabContent(getBaseContext()));        
        mTabHost.addTab(tSpecAndroid);


        /** Defining tab builder for Apple tab */
        TabHost.TabSpec tSpecApple = mTabHost.newTabSpec("Donated");
        tSpecApple.setIndicator(tabview1);        
        tSpecApple.setContent(new DummyTabContent(getBaseContext()));
        mTabHost.addTab(tSpecApple);


        /** Defining tab builder for Apple tab */
        TabHost.TabSpec tSpecbycategory = mTabHost.newTabSpec("Causes");
        tSpecbycategory.setIndicator(tabview2);        
        tSpecbycategory.setContent(new DummyTabContent(getBaseContext()));
        mTabHost.addTab(tSpecbycategory);

        TabHost.TabSpec tSpecblink = mTabHost.newTabSpec("Earn");
        tSpecblink.setIndicator(tabview3);        
        tSpecblink.setContent(new DummyTabContent(getBaseContext()));
        mTabHost.addTab(tSpecblink);



    }
    @Override
    public void onClick(View view) {
        // TODO Auto-generated method stub
        if(view.getId()==R.id.btn2){


            Intent intent = new Intent(LiveSeedsActivity.this,
                    GoActivity.class);
            startActivity(intent);
            Display display = ((WindowManager) 
                    getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            if ((display.getRotation() == Surface.ROTATION_0) || 
                    (display.getRotation() == Surface.ROTATION_180)) {
                overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            }
        }else if(view.getId()==R.id.btn3){


            Intent intent = new Intent(LiveSeedsActivity.this,
                    KnowFragment.class);
            startActivity(intent);
            Display display = ((WindowManager) 
                    getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            if ((display.getRotation() == Surface.ROTATION_0) || 
                    (display.getRotation() == Surface.ROTATION_180)) {
                overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            }
        }else if(view.getId()==R.id.btn4){


            Intent intent = new Intent(LiveSeedsActivity.this,
                    MessageActivity.class);
            startActivity(intent);
            // btn4.setBackgroundColor(0xff00ff00);
            Display display = ((WindowManager) 
                    getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            if ((display.getRotation() == Surface.ROTATION_0) || 
                    (display.getRotation() == Surface.ROTATION_180)) {
                overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            }

        }else if(view.getId()==R.id.btn5){


            //              Intent intent = new Intent(OptionsActivity.this,
            //                      OptionsActivity.class);
            //              startActivity(intent);
            //              Display display = ((WindowManager) 
            //                      getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            //              if ((display.getRotation() == Surface.ROTATION_0) || 
            //                  (display.getRotation() == Surface.ROTATION_180)) {
            //                  overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            //              }
        }else if(view.getId()==R.id.btn6){


            Intent intent = new Intent(LiveSeedsActivity.this,
                    FriendsActivity.class);
            startActivity(intent);
            Display display = ((WindowManager) 
                    getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            if ((display.getRotation() == Surface.ROTATION_0) || 
                    (display.getRotation() == Surface.ROTATION_180)) {
                overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            }
        }else if(view.getId()==R.id.btn7){


            Intent intent = new Intent(LiveSeedsActivity.this,
                    OptionsActivity.class);
            startActivity(intent);
            Display display = ((WindowManager) 
                    getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            if ((display.getRotation() == Surface.ROTATION_0) || 
                    (display.getRotation() == Surface.ROTATION_180)) {
                overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
            }
        }

    }

    private static View createTabView(final Context context, final String text) {
        View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
        return view;
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
        Display display = ((WindowManager) 
                getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        if ((display.getRotation() == Surface.ROTATION_0) || 
                (display.getRotation() == Surface.ROTATION_180)) {
            overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
        }
    }

}

use getActionBar().setSelectedNavigationItem(2); 使用getActionBar()。setSelectedNavigationItem(2); send the tab index ex 2 used here back to the activity containing your fragments. 将此处使用的标签索引ex 2发送回包含您的片段的活动。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM