activity层
public class Show extends AppCompatActivity implements ZxingPresenter.Zxing, GetPresenter.LoadData {
ZxingPresenter zxingPresenter;
GridView gridview,listview;
GetPresenter getPresenter;
Madapter madapter;
GridAdapter mGridAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
zxingPresenter = new ZxingPresenter(this);
//获取控件
listview = findViewById(R.id.listview);
gridview = findViewById(R.id.gridview);
//适配器
madapter= new Madapter(Show.this);
listview.setAdapter(madapter);
//适配器
mGridAdapter = new GridAdapter(Show.this);
gridview.setAdapter(mGridAdapter);
getPresenter = new GetPresenter(this);
//请求数据
getPresenter.getdata();
getPresenter.getgriddata();
}
//二维码扫描
public void zxing(View view) {
Intent intent = new Intent(Show.this, CaptureActivity.class);
startActivityForResult(intent,5);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
//接口回调
zxingPresenter.Sao(requestCode,resultCode,data);
}
@Override
public void zsuccess() {
Toast.makeText(this,"解析成功",Toast.LENGTH_SHORT).show();
}
@Override
public void zfailed() {
Toast.makeText(this,"解析失败",Toast.LENGTH_SHORT).show();
}
//数据请求成功
@Override
public void success(List<Goods.DataBean> dataBeans) {
madapter.setData(dataBeans);
madapter.addData(dataBeans);
}
@Override
public void hhh(List<Stu.DataBean> dataBeans) {
mGridAdapter.setData(dataBeans);
}
}
解析数据的接口
public class GetPresenter {
//定义接口
public interface LoadData{
void success(List<Goods.DataBean> dataBeans);
void hhh(List<Stu.DataBean> dataBeans);
}
public LoadData mLoadData;
public GetPresenter(LoadData loadData) {
mLoadData = loadData;
}
public void getdata(){
final String path = "http://www.wanandroid.com/tools/mockapi/6523/restaurants_offset_0_limit_4";
new AsyncTask<String,Void,List<Goods.DataBean>>(){
@Override
protected List<Goods.DataBean> doInBackground(String... strings) {
String string = HttpUriUtils.requestData(path);
Goods goods = new Gson().fromJson(string, Goods.class);
return goods==null?null:goods.getData();
}
@Override
protected void onPostExecute(List<Goods.DataBean> dataBeans) {
mLoadData.success(dataBeans);
}
}.execute(path);
}
public void getgriddata(){
final String url = "http://www.zhaoapi.cn/product/getCatagory";
new AsyncTask<String,Void,List<Stu.DataBean>>(){
@Override
protected List<Stu.DataBean> doInBackground(String... strings) {
String string = HttpUriUtils.requestData(url);
Stu stu = new Gson().fromJson(string, Stu.class);
return stu==null?null:stu.getData();
}
@Override
protected void onPostExecute(List<Stu.DataBean> dataBeans) {
mLoadData.hhh(dataBeans);
}
}.execute(url);
}
}
适配器器
public class Madapter extends BaseAdapter {
private final Show show;
private final List<Goods.DataBean> list;
public Madapter(Show show) {
this.show = show;
list = new ArrayList<>();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh;
if (convertView==null){
vh = new ViewHolder();
convertView = View.inflate(show, R.layout.list_item,null);
vh.title = convertView.findViewById(R.id.title);
vh.image = convertView.findViewById(R.id.image);
convertView.setTag(vh);
}else {
vh = (ViewHolder) convertView.getTag();
}
vh.title.setText(list.get(position).getBulletin());
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),
vh.image,ImageLoaderConfins.getimageoption(show));
return convertView;
}
public void setData(List<Goods.DataBean> dataBeans) {
this.list.clear();
this.list.addAll(dataBeans);
notifyDataSetChanged();
}
public void addData(List<Goods.DataBean> dataBeans) {
this.list.addAll(dataBeans);
notifyDataSetChanged();
}
class ViewHolder{
TextView title;
ImageView image;
}
}