一 . 创建一个Bean类,一个适配器类,Activity
主布局:
里面有一个listView,然后创建一个对应的item
item布局
Adapter 代码
···
package adpter;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.lenovo.myctriptest.R;
import tools.TrainCheCiBean;
/**
- Created by lenovo on 2018/7/27.
*/
public class TrainAdapter extends BaseAdapter{
Context context;
TrainCheCiBean trainBean;
public TrainAdapter(Context context,TrainCheCiBean trainBean){
this.context=context;
this.trainBean=trainBean;
}
@Override
public int getCount() {
return trainBean.getShowapi_res_body().getContext().size();
}
@Override
public Object getItem(int i) {
return trainBean.getShowapi_res_body().getContext().get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view= View.inflate(context, R.layout.train_adapter,null);
TextView text_code = view.findViewById(R.id.text_code);//站点序号
text_code.setText(trainBean.getShowapi_res_body().getContext().get(i).get(0)+"");
TextView text_start = view.findViewById(R.id.text_start);//站点名称
text_start.setText(trainBean.getShowapi_res_body().getContext().get(i).get(1)+"");
//到达时间
TextView text_end = view.findViewById(R.id.text_end);
text_end.setText(trainBean.getShowapi_res_body().getContext().get(i).get(3)+"");
//发车时间
TextView text_train_start = view.findViewById(R.id.text_train_start);
text_train_start.setText(trainBean.getShowapi_res_body().getContext().get(i).get(4)+"");
return view;
}
}
···
Activity中代码:
···
public void getDataByNet(String trainCode){
try {
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = dateformat.format(System.currentTimeMillis());
URL url = new URL("https://route.showapi.com/909-2?" +
"showapi_appid=70573&showapi_timestamp=" +dateStr+
"&trainDate=" +"2018-09-01"+
"&trainNum=" +trainCode+
"&showapi_sign=d914149e9e3e496a9046dde2ab1e82f6");
// https://route.showapi.com/909-2?showapi_appid=70573&showapi_timestamp=20180727165110&trainDate=2018-09-01&trainNum=G4&showapi_sign=d914149e9e3e496a9046dde2ab1e82f6
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setReadTimeout(10000);
con.setConnectTimeout(10000);
con.connect();
if(con.getResponseCode()==200){
InputStream is = con.getInputStream();
final ByteArrayOutputStream bs = new ByteArrayOutputStream();
byte buffer[] = new byte[512];
int length = -1;
while( (length = is.read(buffer)) != -1 ){
bs.write(buffer,0,length);
bs.flush();
}
Log.d("data",bs.toString());
is.close();
bs.close();
runOnUiThread(new Thread(){
@Override
public void run() {
updateTrainInfo(bs.toString());
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void updateTrainInfo(String trainInfo){
Gson gson = new Gson();
TrainCheCiBean trainBean = gson.fromJson(trainInfo, TrainCheCiBean.class);
adapter = new TrainAdapter(SelectTrain.this,trainBean);
listView.setAdapter(adapter);
}
}
···
需要添加联网权限:
效果图: