package com.android.pc.ioc.a.demo;
import java.util.LinkedHashMap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.pc.ioc.inject.InjectAll;
import com.android.pc.ioc.inject.InjectBinder;
import com.android.pc.ioc.inject.InjectHttp;
import com.android.pc.ioc.inject.InjectHttpErr;
import com.android.pc.ioc.inject.InjectHttpOk;
import com.android.pc.ioc.inject.InjectInit;
import com.android.pc.ioc.internet.FastHttp;
import com.android.pc.ioc.internet.FastHttpHander;
import com.android.pc.ioc.internet.InternetConfig;
import com.android.pc.ioc.internet.ResponseEntity;
import com.android.pc.ioc.view.listener.OnClick;
import com.android.pc.util.Handler_Inject;
import com.wash.activity.R;
/**
* 这个demo主要讲的是 自动注入网络回掉
*
* @author gdpancheng@gmail.com 2014-1-22 下午10:08:12
*/
public class ThirdFragment extends BaseFragment {
@InjectAll(@InjectBinder(method="click",listeners = OnClick.class))
Views v;
class Views{
TextView result;
ProgressBar progress;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
this.inflater = inflater;
View rootView = inflater.inflate(R.layout.fragment_main3, container, false);
Handler_Inject.injectFragment(this, rootView);
return rootView;
}
/**
* 这里分如下几种情况 1 没有设置key 那么回自动去寻找@InjectHttp没有设置key的方法 2 如果设置key 自动寻找和它相等key的@InjectHttp 3 如果设置key 如果找不到和它相等key的@InjectHttp 则自动寻找没有设置key的方法
*
* @author gdpancheng@gmail.com 2014-1-22 下午10:08:42
* @return void
*/
@InjectInit
private void init() {
FastHttpHander.ajaxGet("http://211.152.52.119:8080/app/api.php?act=category", this);
InternetConfig config = new InternetConfig();
//是否保存数据 默认不保存 当没网络的时候 获取数据的时候 然后就会从之前存储的离线拿出数据
config.setSave(true);
config.setKey(1);
LinkedHashMap<String, String> paHashMap = new LinkedHashMap<String, String>();
paHashMap.put("test", "haha");
FastHttpHander.ajaxGet("http://211.152.52.119:8080/app/api.php?act=category",paHashMap, config, this);
InternetConfig config2 = new InternetConfig();
config2.setKey(2);
FastHttpHander.ajaxGet("http://211.152.52.119:8080/app/api.php?act=category", config2, this);
}
void click(){
System.out.println("点击");
}
// 手动区分返回状态
@InjectHttp
private void result(ResponseEntity r) {
switch (r.getStatus()) {
case FastHttp.result_ok:
break;
case FastHttp.result_net_err:
break;
}
v.result.append("我是result 当前key为:" + r.getKey() + "回调了\n");
v.result.setVisibility(View.VISIBLE);
v.progress.setVisibility(View.GONE);
}
@InjectHttpOk(1)
private void resultOk(ResponseEntity r) {
System.out.println(r);
v.result.append("我是resultOk 当前key为:" + r.getKey() + "回调了\n");
v.result.setVisibility(View.VISIBLE);
v.progress.setVisibility(View.GONE);
}
@InjectHttpErr(value = { 1, 2 })
private void resultErr(ResponseEntity r) {
v.result.append("我是resultErr 当前key为:" + r.getKey() + "回调了\n");
v.result.setVisibility(View.VISIBLE);
v.progress.setVisibility(View.GONE);
}
}