@Override
public void get(String url, Map<String, String> map, final ICallBack iCallBack) {
Log.e("aaa",map.size()+"");
if (map!=null&&map.size()>0){
StringBuffer sb=new StringBuffer(url);
sb.append("?");
Set<String> keys = map.keySet();
for (String key:keys) {
String s = map.get(key);
sb.append(key).append("=").append(s).append("&");
}
url=sb.substring(0,sb.length()-1);
}
Log.e("url",url);
Request build = new Request.Builder().url(url).build();
Call call = okHttpClient.newCall(build);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
iCallBack.fail("失败");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
App.context.runOnUiThread(new Runnable() {
@Override
public void run() {
iCallBack.sucess(string);
}
});
}
});
}
BaseActivity
public abstract class BaseActivity extends AppCompatActivity {
private BaseFragment baseFragment;
private BaseFragment lastFragment;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
App.context=this;
init();
inData();
}
protected abstract View getLayoutId();
protected abstract void init();
protected abstract void inData();
public void changeFragment(int containerId,Class<? extends BaseFragment> fragmentclass,Bundle bundle,boolean isReplace,boolean isBack ){
FragmentManager fragmentManager = getSupportFragmentManager();
String canonicalName = fragmentclass.getSimpleName();
FragmentTransaction transaction = fragmentManager.beginTransaction();
BaseFragment fragmentByTag = (BaseFragment) fragmentManager.findFragmentByTag(canonicalName);
if (fragmentByTag==null){
try {
fragmentByTag = fragmentclass.newInstance();
transaction.add(containerId,fragmentByTag,canonicalName);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
if (isReplace){
Log.e("TAG","111111");
transaction.replace(containerId,fragmentByTag,canonicalName);
}else{
if (lastFragment!=null){
transaction.hide(lastFragment);
transaction.show(fragmentByTag);
}
}
if(bundle != null) {
fragmentByTag.setParmas(bundle);
}
if (isBack){
transaction.addToBackStack(canonicalName);
}
transaction.commit();
lastFragment=fragmentByTag;
}
}
BaseFragment
public abstract class BaseFragment extends Fragment {
private Bundle parmas;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View layoutId = getLayoutId();
return layoutId;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
init();
loadData();
}
/**
* 用于加载Activity布局
* @return
*/
protected abstract View getLayoutId();
/**
* 统一管理数据的初始化
*/
protected abstract void init();
/**
* 统一做数据加载
*/
protected abstract void loadData();
/**
* 当Fragment隐藏、显示时改方法会被调用
* @param hidden 当Fragment被隐藏时为true
*/
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if(hidden)
onHide();
else
onShow();
}
/**
* 当Fragment可见时调用 可以在该方法中可以做数据刷新的操作
*/
protected void onShow(){};
/**
* 当Fragment不可见时调用 可以做一下资源释放的操作
*/
protected void onHide(){};
public Bundle getParmas() {
return parmas;
}
public void setParmas(Bundle parmas) {
this.parmas = parmas;
}
}