利用Fragment可以动态的加载页面,减少Activity的数量。
便于开发
类似与html中FragmentSet一样
嵌套在一起,使每个页面为独立的
代码如下:
package com.example.chaoba.study; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private Dongtai dongtai; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button butn1=findViewById(R.id.butn1); butn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FragmentManager fragmentManager = getFragmentManager(); //加载一个Fragment需要先创建管理器, FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); //获取FragmentTransaction对象 if (dongtai==null){ dongtai=new Dongtai(); } fragmentTransaction.replace(R.id.content,dongtai); //移除所有,然后添加 或者 add方法 fragmentTransaction.commit();//提交 } }); } }
package com.example.chaoba.study; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * Created by chaoba on 18-5-31. */ public class Dongtai extends Fragment implements View.OnClickListener{ TextView tv; View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { view=inflater.inflate(R.layout.dongtai,container,false); //创建view return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState);
//重写本方法,用于编写业务逻辑。 initView(); tv.setText("11111111111111"); tv.setOnClickListener(this); //测试点击事件,效果 11111变成5555 } public void initView(){ tv = view.findViewById(R.id.textView2); } public void test(){ tv.setText("5555555"); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.textView2:test();break; } } }