<!==============http==================!>
public class Http {
public static void httpAscynTask(String string, final Callbacks callbacks){
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
return geturl(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
callbacks.getData(s);
}
}.execute(string);
}
public interface Callbacks{
void getData(String s);
}
public static String geturl(String string ){
try {
URL url = new URL(string);
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int code = urlConnection.getResponseCode();
if (code==200){
InputStream stream = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "utf-8"));
StringBuilder builder = new StringBuilder();
String str="";
while ((str=reader.readLine())!=null){
builder.append(str);
}
return builder.toString();
}
urlConnection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
<!==============Fraglist==================!>
public class Fraglist extends Fragment {
private String str = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private Adapter adapter;
private List<JsonData.DataBean> list;
private XListView xlistview;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fraglist,null);
xlistview = view.findViewById(R.id.xlistview);
xlistview.setPullLoadEnable(true);
xlistview.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
Http.httpAscynTask(str, new Http.Callbacks() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonData data = gson.fromJson(s, JsonData.class);
list = data.getData();
adapter = new Adapter(getActivity(), list);
xlistview.setAdapter(adapter);
onLoad();
}
});
}
@Override
public void onLoadMore() {
Http.httpAscynTask(str, new Http.Callbacks() {
@Override
public void getData(String s) {
Gson gson = new Gson();
JsonData data = gson.fromJson(s, JsonData.class);
List<JsonData.DataBean> beans = data.getData();
list.addAll(beans);
adapter.notifyDataSetChanged();
onLoad();
}
});
}
});
Http.httpAscynTask(str, new Http.Callbacks() {
@Override
public void getData(String s) {
Log.i("自行车自行车自行车",s+"");
Gson gson = new Gson();
JsonData data = gson.fromJson(s, JsonData.class);
Log.i("自行车自行车自行车",data+"");
list = data.getData();
adapter = new Adapter(getActivity(), list);
xlistview.setAdapter(adapter);
}
});
return view;
}
private void onLoad(){
xlistview.stopRefresh();
xlistview.stopLoadMore();
xlistview.setRefreshTime("刚刚刷新过");
}
}
<!==============Adapter==================!>
public class Adapter extends BaseAdapter {
private List<JsonData.DataBean> list;
private Context context;
public Adapter(FragmentActivity context, List<JsonData.DataBean> 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 int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
return position%3;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
switch (getItemViewType(position)){
case 0:
convertView = View.inflate(context,R.layout.domou1, null);
TextView name1 = convertView.findViewById(R.id.name1);
ImageView img1 = convertView.findViewById(R.id.img1);
name1.setText(list.get(position).getNews_title()); ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img1);
break;
case 1:
convertView = View.inflate(context,R.layout.domou2, null);
TextView name2 = convertView.findViewById(R.id.name2);
ImageView img2 = convertView.findViewById(R.id.img2);
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img2);
name2.setText(list.get(position).getNews_title());
break;
case 2:
convertView = View.inflate(context,R.layout.domou3, null);
TextView name3 = convertView.findViewById(R.id.name3);
ImageView img3 = convertView.findViewById(R.id.img3);
name3.setText(list.get(position).getNews_title());
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img3);
break;
}
return convertView;
}
}
<!==============app==================!>
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new CircleBitmapDisplayer()).build();
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).build();
ImageLoader loader = ImageLoader.getInstance();
loader.init(build);
}
}
public class FragGridview extends Fragment {
private GridView gridview;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fraggridview, null);
gridview = view.findViewById(R.id.gridview);
new Thread(){
@Override
public void run() {
super.run();
String url = Http.getUrl("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
Gson gson = new Gson();
Jsondata json = gson.fromJson(url, Jsondata.class);
List<Jsondata.DataBean> list = json.getData();
Message message = new Message();
message.what=0;
message.obj=list;
handler.sendMessage(message);
}
}.start();
return view;
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
List<Jsondata.DataBean> list = (List<Jsondata.DataBean>) msg.obj;
MyAdapter myAdapter = new MyAdapter(getActivity(),list);
gridview.setAdapter(myAdapter);
}
}
};
}