车次查询

一 . 创建一个Bean类,一个适配器类,Activity

image.png

主布局:


image.png

里面有一个listView,然后创建一个对应的item
item布局


image.png

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;
}

}

···

image.png

Activity中代码:
image.png

···
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);

}

}

···
需要添加联网权限:
效果图:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容