yanliangjiang

1.界面代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.nicegoodnew.Car.Bus_infomation_Activity">
<Button
android:id="@+id/bus_query"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="公交查询"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_bus_infomation"
/>
<TextView
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"
android:layout_width="200dp"
android:layout_height="50dp"
android:textSize="25dp"
android:text="一号站台"
android:gravity="center"
android:background="@drawable/shape_bus_infomation"
/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="60dp">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="一号公交"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/distance_one"
android:layout_marginLeft="5dp"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="距离8000m"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/remaining_time_one"
android:layout_marginLeft="5dp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="剩余时间20分钟"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="二号公交"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/distance_two"
android:layout_marginLeft="5dp"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="距离4000m"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/remaining_time_two"
android:layout_marginLeft="5dp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="剩余时间10分钟"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
</LinearLayout>
/>
<TextView
android:layout_marginLeft="10dp"
android:layout_width="200dp"
android:layout_height="50dp"
android:textSize="25dp"
android:text="二号站台"
android:gravity="center"
android:background="@drawable/shape_bus_infomation"
/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="60dp">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="一号公交"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/distance_three"
android:layout_marginLeft="5dp"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="距离4000m"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/remaining_time_three"
android:layout_marginLeft="5dp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="剩余时间10分钟"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="二号公交"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/distance_four"
android:layout_marginLeft="5dp"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="距离8000m"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
<TextView
android:id="@+id/remaining_time_four"
android:layout_marginLeft="5dp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="剩余时间20分钟"
android:textSize="20dp"
android:gravity="center"
android:background="@drawable/shape_car_speed"
/>
</LinearLayout>
<TextView
android:id="@+id/query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询"
android:textSize="20dp"
android:background="#2d52f5"
android:gravity="center"

/>
</LinearLayout>

2.代码部分

package com.example.nicegoodnew.Car;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

import com.example.nicegoodnew.Car_util.Bus_infomain_json1;
import com.example.nicegoodnew.R;
import com.example.nicegoodnew.util.BaseRequest;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

public class Bus_infomation_Activity extends AppCompatActivity {
//创建一个List集合
List<Bus_infomain_json1> list = new ArrayList<>();
//创建一个数组,存储数据
String [] carno = {"1","2","3","4"};
//定义TextVew
private TextView distance_one;
private TextView distance_two;
private TextView distance_three;
private TextView distance_four;
//在Handle中运行数据
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//使用switch case运行
switch (msg.what){
//case的值为0的时候运行distance_one,distance_two,distance_three,distance_four
case 0:
distance_one.setText("距离"+list.get(0).getDist().get(0) + "m");
distance_two.setText("距离"+list.get(0).getDist().get(1) + "m");
distance_three.setText("距离"+list.get(1).getDist().get(0) + "m");
distance_four.setText("距离"+list.get(1).getDist().get(1) + "m");
break;
//case的值 运行一下的数据
case 1:
new Thread(new Runnable() {
@Override
public void run() {
initBusCar();
}
}).start();
break;

}
}
};
//在方法中写需要的一些条件
private void initBusCar() {

new Thread(new Runnable() {
@Override
public void run() {
//有四辆公交车 所以这里需要用for循环
Map<String, String> map = new HashMap<String, String>();//使用Map HashMap
Gson gson = new Gson();
for(int i=0;i<carno.length;i++){

map.put("action", "get"); //map.put是需要进行Post请求的一些方式
map.put("object", "trafficcar");
map.put("station",carno[i]); //canno[i]就是上面carno数组里面的数据
String path = "http://dev1.cn:8888"; //给path设置访问网站
String data = gson.toJson(map);
            // BaseRequest.postRequest1 是自己写的一个Post方法
                    String string = BaseRequest.postRequest1(data, path);
//全部写在一个for循环中 怕取到空值 所以判断一下 如果为空 就放回return一下
if("".equals(string)){
return;
}
//取json页面中的数据 用list.add把数据取出来
Bus_infomain_json1 bus_infomain_json1 = gson.fromJson(string, Bus_infomain_json1.class);
list.add(bus_infomain_json1);
}
//有四辆公交车 如果list.size<4就返回继续循环
if(list.size()<4){
return;
}
//handle.sendEmptyMessage运行一下 从what 0 开始运行
handler.sendEmptyMessage(0);
}
}).start();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bus_infomation_);

distance_one= (TextView) findViewById(R.id.distance_one);
distance_two = (TextView) findViewById(R.id.distance_two);
distance_three = (TextView) findViewById(R.id.distance_three);
distance_four = (TextView) findViewById(R.id.distance_four);
//1.第一步先创建一个 initBusCar方法
initBusCar();
//2.第二步创建一个 new BusCarThread().start();
new TimeThread().start();//5秒刷新数据

}
public class TimeThread extends Thread {
//重写run方法
@Override
public void run() {
super.run();
do {
try {
//每隔一秒 发送一次消息
Thread.sleep(3000);
Message msg = new Message();
//消息内容 为MSG_ONE
msg.what = 1;
//发送
handler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
}}

3.

 


分类:

技术点:

相关文章: