package ipget.wenzheng.studio.ipget; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class VolleyDemoActivity extends AppCompatActivity implements View.OnClickListener { private Button button; //初始化按鈕控件 private Button button2; //初始化按鈕控件 private TextView TextView1; //初始化文本控件 private TextView textView2; //初始化文本控件 private EditText ip; //初始化編輯框 private TextView yanwu; //初始化文本控件 private Button stop; Timer timer = new Timer(); //定義全局變量 long delay = 2000; long intevalPeriod = 5* 1000; TimerTask task = new TimerTask() { @Override public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); }}; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub // 要做的事情 super.handleMessage(msg); //Toast.makeText(VolleyDemoActivity.this,"ceshi",Toast.LENGTH_SHORT).show(); test(); } }; @Override protected void onCreate(Bundle savedInstanceState) { //直接運行的界面 super.onCreate(savedInstanceState); setContentView(R.layout.content_main); //進入主界面 initView(); //界面初始化 initListener(); //初始化監聽 } private void initListener() { button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //test(); timer.scheduleAtFixedRate(task, delay,intevalPeriod); //開啟定時器 } }); //團隊簡介按鈕的單機事件,toast彈出名字 button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(VolleyDemoActivity.this,"團隊成員:金玲,郭殊辰,李學倩",Toast.LENGTH_SHORT).show(); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timer.cancel(); task.cancel(); } }); } /** * 初始化控件 * 獲取控件的ID */ private void initView() { button2 = (Button) findViewById(R.id.button2); ip = (EditText) findViewById(R.id.ip); button = (Button)findViewById(R.id.button); TextView1 = (TextView) findViewById(R.id.textView1); textView2 = (TextView) findViewById(R.id.textView2); yanwu = (TextView) findViewById(R.id.yanwu); stop = (Button) findViewById(R.id.stop); } private void test() { Toast.makeText(VolleyDemoActivity.this,"正在刷新數據。。。",Toast.LENGTH_SHORT).show(); //創建一個請求隊列 RequestQueue requestQueue = Volley.newRequestQueue(VolleyDemoActivity.this); //創建一個網絡請求 String url_GET = ip.getText().toString() ; //第一個參數為url 第二個參數為 監聽回調,新建即可 StringRequest stringRequest = new StringRequest(url_GET, new Response.Listener<String>() { //正確接收數據的回調 @Override public void onResponse(String response) { // 分解數據 //將從網頁獲取到的數據進行分解,倒序查找的方法進行分解 //取出溫度值 String tval = response.substring(response.length()-19,response.length()-14); //取出濕度值 String hval = response.substring(response.length()-13,response.length()-8); //取出煙霧值 String yval = response.substring(response.length()-26,response.length()-20); //將數據存儲到相應控件中 TextView1.setText(tval); textView2.setText(hval); yanwu.setText(yval); } }, new Response.ErrorListener() { //錯誤的監聽回調 @Override public void onErrorResponse(VolleyError error) { textView2.setText("加載失敗"+error); } }); //將創建的請求添加到隊列中 requestQueue.add(stringRequest); } @Override protected void onStop() { super.onStop(); //當Activity停止運行后,取消Activity的所有網絡請求 MyApplication.getRequestQueue().cancelAll(VolleyRequestDemo.VOLLEY_TAG); Log.i("### onStop", "cancel all:tag=" + VolleyRequestDemo.VOLLEY_TAG); } @Override public void onClick(View v) { //另外一種單擊事件的方法,可以學習一下在下面判斷ID即可 } }