天天看點

簡單抽基類BaseActivity和BaseFragment

1. 抽Activity

public abstract class BaseActivity extends AppCompatActivity {

    public abstract int initLayout();
    public abstract void initView();
    public abstract void initData();
    public abstract void initListener();
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(initLayout());//初始化主布局
        initView();//初始化控件
        initData();//初始化資料
        initListener();//初始化監聽
    }
}
           

2. 初始化Fragment

public abstract class BaseFragment extends Fragment {
 
    public abstract View initLayout(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState);
    public abstract void initView();
    public abstract void initData();
    public abstract void initListener();
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return initLayout(inflater, container,savedInstanceState);//初始化主布局
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();//初始化控件
        initData();//初始化資料
        initListener();//初始化監聽
    }
           

3.簡單Activity列子:

//需要繼承BaseActivity

public class Main3Activity extends BaseActivity {

    private ArrayList<Fragment> list = new ArrayList<>();
    private ViewPager vps;
    private RadioGroup rgadio;

    //初始化布局
    @Override
    public int initLayout() {
        return R.layout.activity_main3;
    }
    //初始化控件
    @Override
    public void initView() {
        vps = (ViewPager) findViewById(R.id.vp);
        rgadio = (RadioGroup) findViewById(R.id.rg);
    }
    //初始化資料
    @Override
    public void initData() {
        list.add(new FragmentOne());
        list.add(new FragmentTwo());
        list.add(new FragmentThree());
        list.add(new FragmentFour());
        list.add(new FragmentFive());
        //設定擴充卡
        vps.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
    }
    //初始化監聽
    @Override
    public void initListener() {
        getData();//調用監聽方法
    }
    public void getData(){
        //點選事件
        rgadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.rb_bnt1:
                        vps.setCurrentItem(0);
                        break;
                    case R.id.rb_bnt2:
                        vps.setCurrentItem(1);
                        break;
                    case R.id.rb_bnt3:
                        vps.setCurrentItem(2);
                        break;
                    case R.id.rb_bnt4:
                        vps.setCurrentItem(3);
                        break;
                    case R.id.rb_bnt5:
                        vps.setCurrentItem(4);
                        break;
                }
            }
        });
    }
}
 **4.簡單Fragment列子:**
 //需要繼承BaseFragment
 public class FragmentTwo extends BaseFragment {


    @Override
    public View initLayout(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        //初始化布局
        View inflate = inflater.inflate(R.layout.fragmenttwo, container, false);
        return inflate;
    }

    @Override
    public void initView() {
        //初始化資料
    }

    @Override
    public void initData() {
        //初始化資料
    }

    @Override
    public void initListener() {
        //初始化監聽
    }
}
           

繼續閱讀