public class TuiFragment extends Fragment {
private int pageIndex =1 ;
private int operType =1 ;
private String type ;
private String path ;
private XListView listView ;
private List<ReaData.DataBean> datas ;
private MyAdapter adapter ;
@Nullable
@Override
public View onCreateView (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate( R.layout.tuifrag , container,false );
listView = view.findViewById( R.id.lv );
datas =new ArrayList<>( );
Bundle arguments = getArguments();
type = arguments.getString( "type" );
path ="http://mnews.gw.com.cn/wap/data/news/" + type +"/page_" +pageIndex +".json" ;
initplv();
initTher();
return view;
}
private void initplv () {
listView .setPullRefreshEnable( true );
listView .setPullLoadEnable( true );
listView .setXListViewListener( new XListView.IXListViewListener() {
@Override
public void onRefresh () {
pageIndex =1 ;
operType =1 ;
path ="http://mnews.gw.com.cn/wap/data/news/" + type +"/page_" +pageIndex +".json" ;
initTher();
}
@Override
public void onLoadMore () {
pageIndex ++;
operType =2 ;
path ="http://mnews.gw.com.cn/wap/data/news/" + type +"/page_" +pageIndex +".json" ;
initTher();
}
} );
}
private void initTher () {
MyTask myTask = new MyTask();
myTask.execute( path );
}
class MyTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground (String... strings) {
try {
URL url=new URL(strings[0 ]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET" );
urlConnection.setConnectTimeout(5000 );
urlConnection.setReadTimeout(5000 );
if (urlConnection.getResponseCode()==200 ){
InputStream inputStream = urlConnection.getInputStream();
String s = streamToString(inputStream);
return s;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute (String s) {
super .onPostExecute( s );
Gson gson = new Gson();
ArrayList<ReaData> lists = new ArrayList<>();
Type type = new TypeToken<ArrayList<ReaData>>() {
}.getType();
lists=gson.fromJson( s, type );
List<ReaData.DataBean> data = lists.get( 0 ).getData();
if (operType ==1 ){
datas .clear();
}
datas .addAll( data );
setAdapter();
if (operType ==1 ){
listView .stopRefresh();
Date date=new Date(System.currentTimeMillis ());
SimpleDateFormat sdf=new SimpleDateFormat("MM-dd HH:mm:ss" );
String time = sdf.format(date);
listView .setRefreshTime( time );
}else {
listView .stopLoadMore();
}
}
}
private void setAdapter () {
if (adapter ==null ){
adapter = new MyAdapter( datas , getActivity() );
listView .setAdapter( adapter );
}else {
adapter .notifyDataSetChanged();
}
}
private String streamToString (InputStream stream) {
StringBuilder sbuilder=new StringBuilder();
String str;
BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
try {
while ((str=reader.readLine())!=null ){
sbuilder.append(str);
}
} catch (Exception e) {
e.printStackTrace();
}
return sbuilder.toString();
}
}
<RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android" android :layout_width= "match_parent"
android :layout_height= "match_parent" >
<com.bawei.jane.mxlistview.view.XListView
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :id= "@+id/lv"
>
</com.bawei.jane.mxlistview.view.XListView>
</RelativeLayout>