public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
@ViewInject(R.id.xlistview)
private XListView mxlist;
private String path = "http://www.93.gov.cn/93app/data.do?channelId=1&startNum=1";
private List<Data.DataBean> mlist;
private Myadapter myadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
x.view().inject(this);
initview();
loadData();
}
private void loadData() {
RequestParams params = new RequestParams(path);
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Data data = new Gson().fromJson(result,Data.class);
mlist.addAll(data.getData());
myadapter.notifyDataSetChanged();
stopxlistview();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
private void initview() {
mlist = new ArrayList<>();
mxlist.setXListViewListener(this);
mxlist.setPullLoadEnable(true);
myadapter = new Myadapter(MainActivity.this,mlist);
mxlist.setAdapter(myadapter);
}
private void stopxlistview() {
mxlist.stopLoadMore();
mxlist.stopRefresh();
mxlist.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
mlist.clear();
loadData();
}
@Override
public void onLoadMore() {
loadData();
}
//adapter适配器
public class Myadapter extends BaseAdapter {
private List<Data.DataBean> mlist;
private Context context;
final int TYPE_1 = 0;
final int TYPE_2 = 1;
private final ImageOptions options1;
public Myadapter(Context context, List<Data.DataBean> mlist) {
this.mlist = mlist;
this.context = context;
options1 = new ImageOptions.Builder()
.setSize(300, 400)
.setFailureDrawableId(R.mipmap.ic_launcher)
.setLoadingDrawableId(R.mipmap.ic_launcher)
.setRadius(10)
.build();
}
@Override
public int getCount() {
return mlist.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) {
ViewHolder holder;
int type = getItemViewType(position);
if(convertView == null){
holder = new ViewHolder();
switch (type) {
case TYPE_1:
convertView = View.inflate(context, R.layout.one, null);
//x.view().inject(holder,convertView);
break;
case TYPE_2:
convertView = View.inflate(context, R.layout.two, null);
break;
default:
break;
}
x.view().inject(holder,convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_1:
holder.name.setText(mlist.get(position).getSUBTITLE());
break;
case TYPE_2:
holder.names.setText(mlist.get(position).getSUBTITLE());
x.image().bind(holder.images, (String) mlist.get(position).getIMAGEURL(),options1);
break;
}
return convertView;
}
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
int p = position % 6;
if (p == 0)
return TYPE_1;
else if (p < 3)
return TYPE_2;
else
return TYPE_1;
}
class ViewHolder{
@ViewInject(R.id.images)
ImageView images;
@ViewInject(R.id.name)
TextView name;
@ViewInject(R.id.names)
TextView names;
}
}