一 …BaseActivity
public abstract class BaseActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(bindLayout());
initView();//先找控件
initData();//给控件设置数据(位置不要写反了!!!)
bindEvent();
}
//绑定布局的方法
public abstract int bindLayout();
//绑定组件的方法
protected abstract void initView();
//操作数据的方法(请求网络)
protected abstract void initData();
//设置监听的方法
protected abstract void bindEvent();
//找id 的
// protected <T extends View> T bindView(int resId) {
// return (T) findViewById(resId);
// }
//生命周期
protected <T extends View> T bindView(int resid) {
return findViewById(resid);
}
}
二…BaseFragment
public abstract class BaseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(bindLayout(),container,false);
}
//绑定视图
protected abstract int bindLayout();
@Override
public void onActivityCreated( Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
initData();
bindEvent();
}
//绑定组件
protected abstract void initView();
//操作数据
protected abstract void initData();
//设置监听
protected abstract void bindEvent();
protected <T extends View > T bindView(int resId){
return (T) getView().findViewById(resId);
}
}
三 …
public class MainActivity extends BaseActivity {
private Banner banner;
private ArrayList<String> data;
private GridView grid;
private PullToRefreshListView pull;
private String listUrl="http://172.17.8.100/small/commodity/v1/commodityList";
@Override
public int bindLayout() {
return R.layout.activity_main;
}
@Override
protected void initView() {
banner = findViewById (R.id.banner);
grid = findViewById (R.id.grid);
pull = findViewById (R.id.pull);
pull.setMode (PullToRefreshListView.Mode.BOTH);
pull.setPullToRefreshOverScrollEnabled (true);
pull.setOnRefreshListener (new PullToRefreshBase.OnRefreshListener2<ListView> () {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
HttpUtils.httpAsynTask (listUrl, new HttpUtils.CallBackString () {
@Override
public void getData(String s) {
pull.onRefreshComplete();
}
});
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
HttpUtils.httpAsynTask (listUrl, new HttpUtils.CallBackString () {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean2 bean = gson.fromJson(s, JsonBean2.class);
JsonBean2.ResultBean result = bean.getResult();
JsonBean2.ResultBean.MlssBean mlss = result.getMlss();
JsonBean2.ResultBean.PzshBean pzsh = result.getPzsh();
JsonBean2.ResultBean.RxxpBean rxxp = result.getRxxp();
ArrayList<CommodityListBean> list = new ArrayList<>();
list.addAll(mlss.getCommodityList());
list.addAll(pzsh.getCommodityList());
list.addAll(rxxp.getCommodityList());
MyAdapter adapter = new MyAdapter(MainActivity.this,list);
pull.setAdapter (adapter);
pull.onRefreshComplete();
}
});
}
});
}
@Override
protected void initData() {
data = new ArrayList<> ();
data.add ("http://hiphotos.qianqian.com/ting/pic/item/838ba61ea8d3fd1f1326c83c324e251f95ca5f8c.jpg");
data.add ("http://business.cdn.qianqian.com/qianqian/pic/bos_client_734232335ef76f5a05179797875817f3.jpg");
data.add ("http://business.cdn.qianqian.com/qianqian/pic/bos_client_1452f36a8dc430ccdb8f6e57be6df2ee.jpg");
HttpUtils.httpAsynTask (listUrl, new HttpUtils.CallBackString () {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonBean2 bean = gson.fromJson(s, JsonBean2.class);
JsonBean2.ResultBean result = bean.getResult();
JsonBean2.ResultBean.MlssBean mlss = result.getMlss();
JsonBean2.ResultBean.PzshBean pzsh = result.getPzsh();
JsonBean2.ResultBean.RxxpBean rxxp = result.getRxxp();
ArrayList<CommodityListBean> list = new ArrayList<>();
list.addAll(mlss.getCommodityList());
list.addAll(pzsh.getCommodityList());
list.addAll(rxxp.getCommodityList());
MyAdapter adapter = new MyAdapter(MainActivity.this,list);
grid.setAdapter (adapter);
pull.setAdapter (adapter);
}
});
}
@Override
protected void bindEvent() {
banner.setImageLoader (new ImageLoader () {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with (context).load (path).into (imageView);
}
});
banner.setImages (data);
banner.isAutoPlay (true);
banner.setDelayTime (3000);
banner.start ();
}
}
四 … HttpUtiles
public class HttpUtils {
public boolean isNetworkConnected(Context context){
if(context!=null){
//获取连接管理器
ConnectivityManager mConnectivityManager=(ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取网络状态
NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo();
if(mNetworkInfo!=null){
//判断网络是否可用
return mNetworkInfo.isAvailable();
}
}
return false;
}
public static void httpAsynTask(String strUrl, final CallBackString backString) {
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
return httpGet(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//接口回调的方法
backString.getData(s);
}
}.execute(strUrl);
}
//接口================================
public interface CallBackString{
void getData(String s);
}
//==============================================
/**
* @param strUrl 网络接口
* @return :请求的 String 类型的数据
* @author: 苏青岩
* @data: 2019/1/2 16:24
* @Description: 请求网络数据的方法
*/
public static String httpGet(String strUrl) {
//设置url
try {
URL url = new URL(strUrl);
//获取HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置为get请求
connection.setRequestMethod("GET");
//设置连接主机超时时间
connection.setConnectTimeout(5000);
//设置从主机读取数据超时
connection.setReadTimeout(5000);
//得到数据
InputStream stream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
//拼接数据
StringBuilder builder = new StringBuilder();
String str = "";
while ((str = reader.readLine()) != null) {
builder.append(str);
}
//关闭连接
connection.disconnect();
//返回数据
return builder.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
五 …MyAdapter
public class MyAdapter extends BaseAdapter {
private Context context;
private ArrayList<CommodityListBean> list;
public MyAdapter(Context context, ArrayList<CommodityListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size ();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = View.inflate(context, android.R.layout.simple_list_item_1, null);
TextView textView = convertView.findViewById(android.R.id.text1);
textView.setText(list.get(position).getCommodityName());
return convertView;
}
}