Base 是針對于Android開發封裝好一些常用的基類
Base
Base是針對于Android開發封裝好一些常用的基類,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util類,只為更簡單。
引入
Maven:
<dependency>
<groupId>com.king.base</groupId>
<artifactId>base</artifactId>
<version>2.0.1</version>
<type>pom</type>
</dependency>
Gradle:
compile 'com.king.base:base:2.0.1'
Lvy:
<dependency org='com.king.base' name='base' rev='2.0.1'>
<artifact name='$AID' ext='pom'></artifact>
</dependency>
引入的庫:
provided 'com.android.support:recyclerview-v7:24.0.+'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.android.support:appcompat-v7:24.0.+'
簡要說明:
Base主要實用地方體現在:出統一的代碼風格,實用的各種基類,BaseActivity和BaseFragment里面還有許多實用的代碼封裝,只要用了Base,使用Fragment就感覺跟使用Activtiy基本是一樣的。
代碼示例:
通用的Adapter
/**
- 只需繼承通用的適配器(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>
基類BaseActivity
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>
GestureActivity
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>
SplashActivity
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>
BaseFragment
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>
BaseDialogFragment
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>
WebFragment
WebFragment實現基本webView功能
其他小功能
使用Log: 統一控制管理Log
LogUtils.v();
LogUtils.d();
LogUtils.i();
LogUtils.w();
LogUtils.e();
LogUtils.twf();
LogUtils.println();</code></pre>
直接使用 EventBus : 不管是BaseActivity還是BaseFragment的基類中都可以直接使用EventBus的功能。 在BaseActivity有如下方法
public static void sendEvent(Object obj){
EventBus.getDefault().post(obj);
}
發送事件用法
sendEvent(new EventMessage(1)); //這個可以直接在onEventMessage方法中取接收發送的事件消息
sendEvent(obj);//或者直接這個需要自己取接收,使用的方法請參照EventBus
使用Toast
showToast(CharSequence text);
showToast(@StringRes int resId);</code></pre>
使用Dialog
showDialog(View v);
showProgressDialog();
showProgressDialog(@LayoutRes int resId);
showProgressDialog(View v);</code></pre>
更多實用黑科技,請速速使用Base體會吧。
項目主頁:http://www.baiduhome.net/lib/view/home/1494225190544
本文由用戶 kxmsi787 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!