zoukankan      html  css  js  c++  java
  • 动态使用Fragment

    布局文件就不给出了=_=

    public class MyFragment extends Fragment {
    
    
        public static String s1="Yeah";//用于保存getArguments()获得的参数
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if(getArguments()!=null)
                s1=getArguments().getString("name");
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
            View view=inflater.inflate(R.layout.fragment_my, container, false);
            Button button= (Button)view.findViewById(R.id.fragment_button);
    
            button.setText(s1);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                }
            });
            return view;
        }
    }



    public class FragmentTestActivity extends Activity {
    
        int nowButton=0;int MAXBUTTON=2;
        public String MY_TAG="FFF";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_fragment_test);
            Button button=(Button)findViewById(R.id.start_fragmentButton);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    switch (nowButton)
                    {
                        case 0:
                           //设置要传递给Fragment的参数
                            Bundle bundle=new Bundle();
                            bundle.putString("name", "Zzzzz");
                            MyFragment myFragment=new MyFragment();
                            myFragment.setArguments(bundle);
                            //开启一个事务
                            FragmentManager fragmentManager=getFragmentManager();
                            FragmentTransaction transaction=fragmentManager.beginTransaction();
                            transaction.add(R.id.linear_fratment, myFragment, MY_TAG);
                            transaction.addToBackStack(null);
                            transaction.commit();
                            break;
                        case 1:
                           getFragmentManager().popBackStack();//模拟返回栈,将Fragment退栈
                            break;
                        default:break;
                    }
                    nowButton=(nowButton+1)%MAXBUTTON;
                }
            });
    
        }
    }



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    SMTP发邮件(直接可用)实例
    ADO.NET(二)
    ADO.NET(一)
    C# 反射(一)
    APサーバ
    DB2 相关操作
    ArrayList与LinkedList时间复杂度之对比
    java泛型问题 关于警告:XX is a raw type
    Java编程中提高性能的几点建议
    STRUTS2核心控制器:FilterDispatcher
  • 原文地址:https://www.cnblogs.com/Thereisnospon/p/4768452.html
Copyright © 2011-2022 走看看