11 Star 10 Fork 2

Bvin / BasicSupportLayer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

BasicSupportLayer

这是一个可面向所有Android项目的支持库框架,提供一些基础、便捷的服务

RequestActivity用法:

  1. Request可以用GsonRequest,如果需要自定义请求就需要自己去把服务器返回数据解析成对应的模型类,然后把Responces.Listener和ErrorListener设置成this,如果是RequestFragment则设置成getRequestActivity(),因为RequestFragment也是用RequestActivity代理请求.

  2. 一定要给RequestActiviy的mRequestHolderFragment赋值加载视图和出错视图等自动处理才会生效,mRequestHolderFragment可以作为一个独立的外部类方便重复利用,并且这个mRequestHolderFragment和RequestFragment是同处于RequestActivity中的。

  3. onRequestStart和onRequestFailure在RequestActivity父类中作了处理,无需特别之处不需要再做处理,只需要在onRequestSuccess方法里处理数据。

public class TestRequestActivity extends RequestActivity<TestRequestActivity.TestModel>{

	String url;
	Map<String, Object> params;
	
	@Override
	public void onCreate(Bundle savedInstanceState,
			PersistableBundle persistentState) {
		super.onCreate(savedInstanceState, persistentState);
		parserIntent();
		initData();
		initViews();
		startRequest();
	}

	@Override
	public void parserIntent() {
		super.parserIntent();
		url = getIntent().getStringExtra("/...");
		params.put(key, value)
	}

	@Override
	public void initData() {
		super.initData();
	}

	@Override
	public void initViews() {
		super.initViews();
		//请求占位Fragment
		mRequestHolderFragment = new AbstractRPFragment() {
			
			@Override
			public void initViews(View rootView) {
				mLoadingFrame = rootView.findViewById(id)
				mEmptyFrame = rootView.findViewById(id)
				mErrorFrame = rootView.findViewById(id)
				tvEmptyTips = rootView.findViewById(id)
				tvErrorSceneTips = rootView.findViewById(id)
				tvLoadTip = = rootView.findViewById(id)
			}

			@Override
			public View onCreateView(LayoutInflater inflater,
					ViewGroup container, Bundle savedInstanceState) {
				View v = inflater.inflate(R.layout.activity_list_item, container);
				initViews(v);
				return v;
			}
			
			
		};
	}

	@Override
	public void onRequestStart(Request<TestModel> resquest) {
		super.onRequestStart(resquest);
	}

	@Override
	public void onRequestSuccess(TestModel result) {
		super.onRequestSuccess(result);
	}

	@Override
	public void onRequestFailure(VolleyError error) {
		super.onRequestFailure(error);
	}

	private void startRequest() {
		GsonRequest<TestModel> request = new GsonRequest<>(url, params, TestModel.class, this, this);
		addRequest(request);
	}
	
	//请求返回结果的模型
	public class TestModel{
		
	}
}

标准的RequestHolderFragment示例

**
 * 
 * @ClassName: RequestHolderFragment 
 * @Description: 继承AbstractRPFragment,只需要继承实现initViews()方法和onCreateView,
 * 只需要在子类加载布局和绑定控件
 * @author: Bvin
 * @date: 2015年2月2日 上午10:53:53
 */
public class RequestHolderFragment extends AbstractRPFragment{

	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.univ_request_place_holder,  container, false);
		initViews(rootView);
		return rootView;
	}

	@Override
	public void initViews(View rootView) {
		mLoadingFrame = rootView.findViewById(R.id.loading_frame);
		mEmptyFrame = rootView.findViewById(R.id.empty_frame);
		mErrorFrame = rootView.findViewById(R.id.error_frame);
		//错误视图是可以去点击重新请求的
		mErrorFrame.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				getRequestActivity().reloadRequest();
			}
		});
		tvLoadTip = (TextView) mLoadingFrame.findViewById(R.id.tvLoadTip);
		tvEmptyTips = (TextView) mEmptyFrame.findViewById(R.id.tvEmptyTips);
		tvErrorSceneTips = (TextView) mErrorFrame.findViewById(R.id.tvErrorSceneTips);
		defaultLoadTips = ResourceFinder.findString(getActivity(), R.string.loading_tips);
		defaultEmptyTips = ResourceFinder.findString(getActivity(), R.string.empty_tips);
		defaultSceneError = ResourceFinder.findString(getActivity(), R.string.error_scene_tips);
		defaultErrorSolution = ResourceFinder.findString(getActivity(), R.string.error_solution_click_retry);
	}

}

##License

Copyright 2014-2015 Bvin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

空文件

简介

这是一个可面向所有Android项目的支持库,提供一些基础、便捷的服务 展开 收起
Android
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Android
1
https://gitee.com/bvin_admin/BasicSupportLayer.git
git@gitee.com:bvin_admin/BasicSupportLayer.git
bvin_admin
BasicSupportLayer
BasicSupportLayer
master

搜索帮助