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>