Android基础——构建自己喜欢的BaseActivity、BaseFragment抽象类

BaseActvity

所有Activity的基类,可以提高代码的阅读性和简洁性,根据你个人喜爱构建出自己的抽象类吧

可以在BaseActivity中放置一些第三方服务的初始化代码和网络监听事件等等等

步骤一:创建BaseActivity抽象类:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public abstract class BaseActivity extends FragmentActivity implements View.OnClickListener {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.   
  7.         initViews();  
  8.         initListener();  
  9.         initData();  
  10.     }  
  11.   
  12.     public abstract void initViews();  
  13.   
  14.     public abstract void initListener();  
  15.   
  16.     public abstract void initData();  
  17.   
  18.     public abstract void processClick(View v);  
  19.   
  20.     public void onClick(View v) {  
  21.         processClick(v);  
  22.     }  
  23.   
  24. }  

步骤二:在代码中的使用:

 

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public class MyActivity extends BaseActivity {  
  2.   
  3.     @Override  
  4.     public void initViews() {  
  5.         //放置初始化View  
  6.         setContentView(R.layout.activity_my);  
  7.     }  
  8.   
  9.     @Override  
  10.     public void initListener() {  
  11.         //放置控件的监听事件  
  12.     }  
  13.   
  14.     @Override  
  15.     public void initData() {  
  16.         //放置初始化数据  
  17.     }  
  18.   
  19.     @Override  
  20.     public void processClick(View v) {  
  21.         //处理控件的监听事件  
  22.     }  
  23. }  


BaseFragment

 

步骤一:创建BaseFragment抽象类:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public abstract class BaseFragment extends Fragment implements View.OnClickListener {  
  2.   
  3.     @Override  
  4.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
  5.         return initViews(inflater, container, savedInstanceState);  
  6.     }  
  7.   
  8.     @Override  
  9.     public void onActivityCreated(@Nullable Bundle savedInstanceState) {  
  10.         super.onActivityCreated(savedInstanceState);  
  11.         initData();  
  12.         initListener();  
  13.     }  
  14.   
  15.     public abstract View initViews(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState);  
  16.   
  17.     public abstract void initData();  
  18.   
  19.     public abstract void initListener();  
  20.   
  21.     public abstract void processClick(View v);  
  22.   
  23.     @Override  
  24.     public void onClick(View v) {  
  25.         processClick(v);  
  26.     }  
  27. }  

步骤二:在代码中的使用:

 

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
    1. public class MineFragment extends BaseFragment {  
    2.   
    3.     @Override  
    4.     public View initViews(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
    5.         View view = inflater.inflate(R.layout.fragment_mine, null);  
    6.         return view;  
    7.     }  
    8.   
    9.     @Override  
    10.     public void initData() {  
    11.     }  
    12.   
    13.     @Override  
    14.     public void initListener() {  
    15.   
    16.     }  
    17.   
    18.     @Override  
    19.     public void processClick(View v) {  
    20.   
    21.     }  
    22. }  
posted @ 2016-12-30 16:06  天涯海角路  阅读(147)  评论(0)    收藏  举报