欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单抽基类BaseActivity和BaseFragment

程序员文章站 2024-03-08 10:15:04
...

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() {
    //初始化监听
}

}

相关标签: 5