Base 是針對于Android開發封裝好一些常用的基類

kxmsi787 7年前發布 | 17K 次閱讀 EventBus 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!