封装

来源:互联网 发布:宁波傲强自动编程软件 编辑:程序博客网 时间:2024/06/08 07:36

BaseActivity

public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener,ViewPager.OnPageChangeListener,RadioGroup.OnCheckedChangeListener{    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(getLayoutId());        findId();        initData();    }    /**     * 获取布局的id     * @return     */    protected abstract int getLayoutId();    /**     * 找到控件的id     */    protected abstract void findId();    /**     * 初始化数据的操作     */    protected abstract void initData();}

封装完成之后,创建一个activity继承baseActivity,并重写里面的方法

public class SecondActivity extends BaseActivity {    private Button button;    private Button button_02;    private RadioGroup radioGroup;    /**     * 关联当前activity显示的布局的id     * @return     */    @Override    protected int getLayoutId() {        return R.layout.second_layout;    }    /**     * 找到当前activity上面的控件     */    @Override    protected void findId() {        button = (Button) findViewById(R.id.button_01);        button_02 = (Button) findViewById(R.id.button_02);        radioGroup = (RadioGroup) findViewById(R.id.radio_group);    }    /**     * 有关数据有关逻辑的操作写在这里面     */    @Override    protected void initData() {        //设置点击事件        button.setOnClickListener(this);        button_02.setOnClickListener(this);        //radioGroup监听        radioGroup.setOnCheckedChangeListener(this);    }    /**     * radioGroup的事件     * @param radioGroup     * @param i     */    @Override    public void onCheckedChanged(RadioGroup radioGroup, int i) {        switch (i){        }    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.button_01:                break;            case R.id.button_02:                break;        }    }    @Override    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {    }    @Override    public void onPageSelected(int position) {    }    @Override    public void onPageScrollStateChanged(int state) {    }}

BaseFragment

public abstract class BaseFragment extends Fragment implements View.OnClickListener{    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = initView(inflater,container);        return view;    }    /**     * 关联布局,,,并且找到控件id的操作     * @param inflater     * @param container     * @return     */    protected abstract View initView(LayoutInflater inflater, ViewGroup container);    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        //逻辑的操作        initData();    }    protected abstract void initData();}

封装完成之后,创建一个fragment继承封装的basefragment,重写里面的方法

public class FragmnetNews extends BaseFragment {    @Override    protected View initView(LayoutInflater inflater, ViewGroup container) {        View view = inflater.inflate(R.layout.second_layout,container,false);        //找到id        return view;    }    @Override    protected void initData() {        //获取数据        //设置适配器    }    @Override    public void onClick(View view) {    }}

封装json方法

在解析的时候调用

public class JsonUtil {    public static Gson gson = new Gson();    /**     * DataDataBean dataDataBean = gson.fromJson(s,DataDataBean.class);     *     * 这一一种解析数据的格式,,,{}对应,解析出来是一个实体类对象     */    public static <T> T parseJson(String json,Class<T> tClass){        T t = gson.fromJson(json, tClass);        return t;    }    /**     * List<DataDataBean> listData = gson.fromJson(s,type);     *     * 这是第二种,解析出来是一个list集合     */}