Base 是针对于Android开发封装好一些常用的基类

kxmsi787 8年前
   <h2>Base</h2>    <p>Base是针对于Android开发封装好一些常用的基类,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util类,只为更简单。</p>    <h2>引入</h2>    <h3>Maven:</h3>    <pre>  <code class="language-java"><dependency>    <groupId>com.king.base</groupId>    <artifactId>base</artifactId>    <version>2.0.1</version>    <type>pom</type>  </dependency></code></pre>    <h3>Gradle:</h3>    <pre>  <code class="language-java">compile 'com.king.base:base:2.0.1'</code></pre>    <h3>Lvy:</h3>    <pre>  <code class="language-java"><dependency org='com.king.base' name='base' rev='2.0.1'>    <artifact name='$AID' ext='pom'></artifact>  </dependency></code></pre>    <h3>引入的库:</h3>    <pre>  <code class="language-java">provided 'com.android.support:recyclerview-v7:24.0.+'</code></pre>    <pre>  <code class="language-java">compile 'org.greenrobot:eventbus:3.0.0'</code></pre>    <pre>  <code class="language-java">compile 'com.android.support:appcompat-v7:24.0.+'</code></pre>    <h2>简要说明:</h2>    <p>Base主要实用地方体现在:出统一的代码风格,实用的各种基类,BaseActivity和BaseFragment里面还有许多实用的代码封装,只要用了Base,使用Fragment就感觉跟使用Activtiy基本是一样的。</p>    <h2>代码示例:</h2>    <h3>通用的Adapter</h3>    <pre>  <code class="language-java">/**    *     * 只需继承通用的适配器(ViewHolderAdapter或ViewHolderRecyclerAdapter),简单的几句代码,妈妈再也不同担心我写自定义适配器了。    */  public class TestAdapter extends ViewHolderAdapter<String> {          public TestAdapter(Context context, List<String> listData) {          super(context, listData);      }        @Override      public View buildConvertView(LayoutInflater layoutInflater, String s, int position) {          return inflate(R.layout.list_item);      }        @Override      public void bindViewDatas(ViewHolder holder, String s, int position) {          holder.setText(R.id.tv,s);      }  }</code></pre>    <h3>基类BaseActivity</h3>    <pre>  <code class="language-java">public class TestActivity extends BaseActivity {        private TextView tv;      private Button btn;        @Override      public void initUI() {          //TODO:初始化UI          setContentView(R.layout.activity_test);          tv = findView(R.id.tv);          btn = findView(R.id.btn);      }        @Override      public void initData() {          //TODO:初始化数据(绑定数据)          tv.setText("text");      }        @Override      public void addListeners() {          //TODO:添加监听事件      }        @Override      public void onEventMessage(EventMessage em) {          //TODO:接收EventBus发送的事件(EventMessage)      }  }</code></pre>    <h3>GestureActivity</h3>    <pre>  <code class="language-java">public class TestGestureActivity extends GestureActivity {        private TextView tv;      private Button btn;        @Override      public void initUI() {          //TODO:初始化UI          setContentView(R.layout.activity_test);          tv = findView(R.id.tv);          btn = findView(R.id.btn);      }        @Override      public void initData() {          //TODO:初始化数据(绑定数据)          tv.setText("text");      }        @Override      public void addListeners() {          //TODO:添加监听事件      }        @Override      public void onEventMessage(EventMessage em) {          //TODO:接收EventBus发送的事件(EventMessage)      }        @Override      public void onLeftFling() {          //TODO:向左滑动      }        @Override      public boolean onRightFling() {          //TODO:向右滑动,默认执行finish,返回为true表示拦截事件。          return false;      }  }</code></pre>    <h3>SplashActivity</h3>    <pre>  <code class="language-java">public class TestSplashActivity extends SplashActivity {      @Override      public int getContentViewId() {          return R.layout.activity_splash;      }        @Override      public Animation.AnimationListener getAnimationListener() {          return new Animation.AnimationListener() {              @Override              public void onAnimationStart(Animation animation) {                }                @Override              public void onAnimationEnd(Animation animation) {                  //TODO: 启动动画结束,可执行跳转逻辑              }                @Override              public void onAnimationRepeat(Animation animation) {                }          };      }  }</code></pre>    <h3>BaseFragment</h3>    <pre>  <code class="language-java">public class TestFragment extends BaseFragment {      @Override      public int inflaterRootView() {          return R.layout.fragment_test;      }        @Override      public void initUI() {          //TODO:初始化UI      }        @Override      public void initData() {           //TODO:初始化数据(绑定数据)      }        @Override      public void addListeners() {          //TODO:添加监听事件      }        @Override      public void onEventMessage(EventMessage em) {          //TODO:接收EventBus发送的事件(EventMessage)      }  }</code></pre>    <h3>BaseDialogFragment</h3>    <pre>  <code class="language-java">public class TestDialogFragment extends BaseDialogFragment {      @Override      public int inflaterRootView() {          return R.layout.fragment_test_dialog;      }        @Override      public void initUI() {          //TODO:初始化UI      }        @Override      public void initData() {          //TODO:初始化数据(绑定数据)      }        @Override      public void addListeners() {          //TODO:添加监听事件      }        @Override      public void onEventMessage(EventMessage em) {           //TODO:接收EventBus发送的事件(EventMessage)      }  }</code></pre>    <h3>WebFragment</h3>    <pre>  <code class="language-java">WebFragment实现基本webView功能</code></pre>    <h3>其他小功能</h3>    <p>使用Log: 统一控制管理Log</p>    <pre>  <code class="language-java">LogUtils.v();       LogUtils.d();      LogUtils.i();      LogUtils.w();      LogUtils.e();      LogUtils.twf();      LogUtils.println();</code></pre>    <p>直接使用 EventBus : 不管是BaseActivity还是BaseFragment的基类中都可以直接使用EventBus的功能。 在BaseActivity有如下方法</p>    <pre>  <code class="language-java">public static void sendEvent(Object obj){          EventBus.getDefault().post(obj);      }</code></pre>    <p>发送事件用法</p>    <pre>  <code class="language-java">sendEvent(new EventMessage(1)); //这个可以直接在onEventMessage方法中取接收发送的事件消息</code></pre>    <pre>  <code class="language-java">sendEvent(obj);//或者直接这个需要自己取接收,使用的方法请参照EventBus</code></pre>    <p>使用Toast</p>    <pre>  <code class="language-java">showToast(CharSequence text);      showToast(@StringRes  int resId);</code></pre>    <p>使用Dialog</p>    <pre>  <code class="language-java">showDialog(View v);</code></pre>    <pre>  <code class="language-java">showProgressDialog();      showProgressDialog(@LayoutRes int resId);      showProgressDialog(View v);</code></pre>    <p>更多实用黑科技,请速速使用Base体会吧。</p>    <h2> </h2>    <p> </p>    <p>项目主页:<a href="http://www.open-open.com/lib/view/home/1494225190544">http://www.open-open.com/lib/view/home/1494225190544</a></p>    <p> </p>