无法在捕获中显示toast package com.example.m2mai; 导入java.io.BufferedReader; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.URL; 导入java.sql.Timestamp; 导入java.text.DateFormat; 导入java.text.simpleDataFormat; 导入java.util.ArrayList; 导入java.util.Date; 导入org.json.JSONArray; 导入org.json.JSONObject; 导入android.app.Activity; 导入android.os.AsyncTask; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.ArrayAdapter; 导入android.widget.EditText; 导入android.widget.ListView; 导入android.widget.Toast; 公共类检索活动扩展了活动{ @凌驾 创建时受保护的void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_retrieve); } 公共void getStream(视图v) { 新建MyAsyncTask().execute(); } 私有类MyAsyncTask扩展了AsyncTask { ArrayList mNameList=新的ArrayList(); public ArrayList atList=new ArrayList(); public ArrayList dataList=new ArrayList(); 受保护的字符串doInBackground(字符串…参数) { 返回getData(); } 公共长getDateTo() { EditText-toText=(EditText)findViewById(R.id.dateTo); 字符串To=toText.getText().toString(); DateFormat DateFormato=新的SimpleDateFormat(“dd/MM/yyyy”); dateTo=null; 试一试{ dateTo=dateformato.parse(To); }catch(java.text.parsee){ .runOnUiThread(新的Runnable(){ 公开募捐{ Toast.makeText(getApplicationContext(),“请输入正确的输入”,Toast.LENGTH\u LONG.show(); } }); e、 printStackTrace(); } long-timeTo=dateTo.getTime(); 新时间戳(timeTo); 返回时间为/1000; } 受保护的字符串getData() { 字符串toTS=“”+getDateTo(); 字符串decodedString=“”; 字符串returnMsg=“”; 字符串请求=”http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to=“+toTS; 网址; HttpURLConnection=null; 试一试{ url=新url(请求); connection=(HttpURLConnection)url.openConnection(); connection.addRequestProperty(“carriots.apikey”、“1234567”); addRequestProperty(“内容类型”、“应用程序/json”); connection.setRequestMethod(“GET”); BufferedReader in=新的BufferedReader(新的InputStreamReader(connection.getInputStream()); 而((decodedString=in.readLine())!=null) { returnMsg+=解码字符串; } in.close(); 连接断开(); JSONObject nodeRoot=新的JSONObject(returnMsg); JSONArray res=nodeRoot.getJSONArray(“结果”); 对于(int i=0;i

无法在捕获中显示toast package com.example.m2mai; 导入java.io.BufferedReader; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.URL; 导入java.sql.Timestamp; 导入java.text.DateFormat; 导入java.text.simpleDataFormat; 导入java.util.ArrayList; 导入java.util.Date; 导入org.json.JSONArray; 导入org.json.JSONObject; 导入android.app.Activity; 导入android.os.AsyncTask; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.ArrayAdapter; 导入android.widget.EditText; 导入android.widget.ListView; 导入android.widget.Toast; 公共类检索活动扩展了活动{ @凌驾 创建时受保护的void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_retrieve); } 公共void getStream(视图v) { 新建MyAsyncTask().execute(); } 私有类MyAsyncTask扩展了AsyncTask { ArrayList mNameList=新的ArrayList(); public ArrayList atList=new ArrayList(); public ArrayList dataList=new ArrayList(); 受保护的字符串doInBackground(字符串…参数) { 返回getData(); } 公共长getDateTo() { EditText-toText=(EditText)findViewById(R.id.dateTo); 字符串To=toText.getText().toString(); DateFormat DateFormato=新的SimpleDateFormat(“dd/MM/yyyy”); dateTo=null; 试一试{ dateTo=dateformato.parse(To); }catch(java.text.parsee){ .runOnUiThread(新的Runnable(){ 公开募捐{ Toast.makeText(getApplicationContext(),“请输入正确的输入”,Toast.LENGTH\u LONG.show(); } }); e、 printStackTrace(); } long-timeTo=dateTo.getTime(); 新时间戳(timeTo); 返回时间为/1000; } 受保护的字符串getData() { 字符串toTS=“”+getDateTo(); 字符串decodedString=“”; 字符串returnMsg=“”; 字符串请求=”http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to=“+toTS; 网址; HttpURLConnection=null; 试一试{ url=新url(请求); connection=(HttpURLConnection)url.openConnection(); connection.addRequestProperty(“carriots.apikey”、“1234567”); addRequestProperty(“内容类型”、“应用程序/json”); connection.setRequestMethod(“GET”); BufferedReader in=新的BufferedReader(新的InputStreamReader(connection.getInputStream()); 而((decodedString=in.readLine())!=null) { returnMsg+=解码字符串; } in.close(); 连接断开(); JSONObject nodeRoot=新的JSONObject(returnMsg); JSONArray res=nodeRoot.getJSONArray(“结果”); 对于(int i=0;i,android,Android,我如何在不停止的情况下展示祝酒词?每当它落入陷阱,它就没有反应 如果在工作线程中使用尝试catch,则如果您想显示土司,那么恐怕它就行不通了。您必须在主(UI)线程中执行此操作 请尝试以下操作: package com.example.m2mai; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; imp

我如何在不停止的情况下展示祝酒词?每当它落入陷阱,它就没有反应


如果在
工作线程中使用
尝试catch
,则如果您想显示
土司
,那么恐怕它就行不通了。您必须在
主(UI)线程中执行此操作

请尝试以下操作:

package com.example.m2mai;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;


public class RetrieveActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_retrieve);
    }



    public void getStream(View v)
    {   
        new MyAsyncTask().execute();
    }

private class MyAsyncTask extends AsyncTask<String, Void, String>
{   
    ArrayList<String> mNameList = new ArrayList<String>();
    public ArrayList<String> atList=new ArrayList<String>();
    public ArrayList<String> dataList=new ArrayList<String>();


        protected String doInBackground(String... params) 
        {
            return getData();

        }
        public long getDateTo() 
      {
        EditText toText = (EditText)findViewById(R.id.dateTo);
        String To = toText.getText().toString();

        DateFormat dateFormatTo = new SimpleDateFormat("dd/MM/yyyy");
        Date dateTo = null;
        try {
            dateTo = dateFormatTo.parse(To);
        } catch (java.text.ParseException e) {
            .runOnUiThread(new Runnable(){
                  public void run() {
                      Toast.makeText(getApplicationContext(),"Please key in the correct input",    Toast.LENGTH_LONG).show();
                  }
                });
            e.printStackTrace();
        }
        long timeTo = dateTo.getTime();
        new Timestamp(timeTo);  
        return timeTo/1000;

      }

        protected String getData()
        {
            String toTS = ""+getDateTo();
            String decodedString="";
            String returnMsg="";
            String request = "http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to="+toTS;
            URL url;
            HttpURLConnection connection = null;  
            try {
                url = new URL(request); 
                connection = (HttpURLConnection) url.openConnection();

                connection.addRequestProperty("carriots.apikey", "1234567");
                connection.addRequestProperty("Content-Type", "application/json");
                connection.setRequestMethod("GET"); 

                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                while ((decodedString = in.readLine()) != null) 
                {
                    returnMsg+=decodedString;
                }
                in.close();
                connection.disconnect();
                JSONObject nodeRoot = new JSONObject(returnMsg); 
                JSONArray res = nodeRoot.getJSONArray("result");

                 for (int i = 0; i < res.length(); i++) 
                    {
                    JSONObject childJSON = res.getJSONObject(i);
                    if (childJSON.get("data")!=null)
                        {
                       String value = childJSON.getString("data");
                       dataList.add(value);
                       JSONObject node=new JSONObject(value);
                       atList.add(node.get("temperature").toString()); 
                        }
                    } 
                 }
                 catch (Exception e) 
            {
                e.printStackTrace(); 
                returnMsg=""+e;

            }
            return returnMsg;
        }

        protected void onPostExecute(String result)
            {


            for(int i = 0; i < atList.size(); i++)
            {
            ListView mainListView = (ListView) findViewById(R.id.listView1);


            ArrayAdapter<String>  mArrayAdapter = new ArrayAdapter<String>(RetrieveActivity.this,android.R.layout.simple_list_item_1,mNameList);


            mainListView.setAdapter(mArrayAdapter);

            mNameList.add(atList.get(i).toString());
            mArrayAdapter.notifyDataSetChanged();
            }
            Toast.makeText(getApplicationContext(),result, Toast.LENGTH_SHORT).show();
            EditText myData1=(EditText)findViewById(R.id.editText1);
            myData1.setText(atList.get(0));

            }
    }

}

如果您正在
工作线程中使用
try catch
,并且希望显示
Toast
,那么恐怕它将无法工作。您必须在
主(UI)线程中执行此操作

请尝试以下操作:

package com.example.m2mai;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;


public class RetrieveActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_retrieve);
    }



    public void getStream(View v)
    {   
        new MyAsyncTask().execute();
    }

private class MyAsyncTask extends AsyncTask<String, Void, String>
{   
    ArrayList<String> mNameList = new ArrayList<String>();
    public ArrayList<String> atList=new ArrayList<String>();
    public ArrayList<String> dataList=new ArrayList<String>();


        protected String doInBackground(String... params) 
        {
            return getData();

        }
        public long getDateTo() 
      {
        EditText toText = (EditText)findViewById(R.id.dateTo);
        String To = toText.getText().toString();

        DateFormat dateFormatTo = new SimpleDateFormat("dd/MM/yyyy");
        Date dateTo = null;
        try {
            dateTo = dateFormatTo.parse(To);
        } catch (java.text.ParseException e) {
            .runOnUiThread(new Runnable(){
                  public void run() {
                      Toast.makeText(getApplicationContext(),"Please key in the correct input",    Toast.LENGTH_LONG).show();
                  }
                });
            e.printStackTrace();
        }
        long timeTo = dateTo.getTime();
        new Timestamp(timeTo);  
        return timeTo/1000;

      }

        protected String getData()
        {
            String toTS = ""+getDateTo();
            String decodedString="";
            String returnMsg="";
            String request = "http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to="+toTS;
            URL url;
            HttpURLConnection connection = null;  
            try {
                url = new URL(request); 
                connection = (HttpURLConnection) url.openConnection();

                connection.addRequestProperty("carriots.apikey", "1234567");
                connection.addRequestProperty("Content-Type", "application/json");
                connection.setRequestMethod("GET"); 

                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                while ((decodedString = in.readLine()) != null) 
                {
                    returnMsg+=decodedString;
                }
                in.close();
                connection.disconnect();
                JSONObject nodeRoot = new JSONObject(returnMsg); 
                JSONArray res = nodeRoot.getJSONArray("result");

                 for (int i = 0; i < res.length(); i++) 
                    {
                    JSONObject childJSON = res.getJSONObject(i);
                    if (childJSON.get("data")!=null)
                        {
                       String value = childJSON.getString("data");
                       dataList.add(value);
                       JSONObject node=new JSONObject(value);
                       atList.add(node.get("temperature").toString()); 
                        }
                    } 
                 }
                 catch (Exception e) 
            {
                e.printStackTrace(); 
                returnMsg=""+e;

            }
            return returnMsg;
        }

        protected void onPostExecute(String result)
            {


            for(int i = 0; i < atList.size(); i++)
            {
            ListView mainListView = (ListView) findViewById(R.id.listView1);


            ArrayAdapter<String>  mArrayAdapter = new ArrayAdapter<String>(RetrieveActivity.this,android.R.layout.simple_list_item_1,mNameList);


            mainListView.setAdapter(mArrayAdapter);

            mNameList.add(atList.get(i).toString());
            mArrayAdapter.notifyDataSetChanged();
            }
            Toast.makeText(getApplicationContext(),result, Toast.LENGTH_SHORT).show();
            EditText myData1=(EditText)findViewById(R.id.editText1);
            myData1.setText(atList.get(0));

            }
    }

}
请尝试以下操作:

package com.example.m2mai;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;


public class RetrieveActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_retrieve);
    }



    public void getStream(View v)
    {   
        new MyAsyncTask().execute();
    }

private class MyAsyncTask extends AsyncTask<String, Void, String>
{   
    ArrayList<String> mNameList = new ArrayList<String>();
    public ArrayList<String> atList=new ArrayList<String>();
    public ArrayList<String> dataList=new ArrayList<String>();


        protected String doInBackground(String... params) 
        {
            return getData();

        }
        public long getDateTo() 
      {
        EditText toText = (EditText)findViewById(R.id.dateTo);
        String To = toText.getText().toString();

        DateFormat dateFormatTo = new SimpleDateFormat("dd/MM/yyyy");
        Date dateTo = null;
        try {
            dateTo = dateFormatTo.parse(To);
        } catch (java.text.ParseException e) {
            .runOnUiThread(new Runnable(){
                  public void run() {
                      Toast.makeText(getApplicationContext(),"Please key in the correct input",    Toast.LENGTH_LONG).show();
                  }
                });
            e.printStackTrace();
        }
        long timeTo = dateTo.getTime();
        new Timestamp(timeTo);  
        return timeTo/1000;

      }

        protected String getData()
        {
            String toTS = ""+getDateTo();
            String decodedString="";
            String returnMsg="";
            String request = "http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to="+toTS;
            URL url;
            HttpURLConnection connection = null;  
            try {
                url = new URL(request); 
                connection = (HttpURLConnection) url.openConnection();

                connection.addRequestProperty("carriots.apikey", "1234567");
                connection.addRequestProperty("Content-Type", "application/json");
                connection.setRequestMethod("GET"); 

                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                while ((decodedString = in.readLine()) != null) 
                {
                    returnMsg+=decodedString;
                }
                in.close();
                connection.disconnect();
                JSONObject nodeRoot = new JSONObject(returnMsg); 
                JSONArray res = nodeRoot.getJSONArray("result");

                 for (int i = 0; i < res.length(); i++) 
                    {
                    JSONObject childJSON = res.getJSONObject(i);
                    if (childJSON.get("data")!=null)
                        {
                       String value = childJSON.getString("data");
                       dataList.add(value);
                       JSONObject node=new JSONObject(value);
                       atList.add(node.get("temperature").toString()); 
                        }
                    } 
                 }
                 catch (Exception e) 
            {
                e.printStackTrace(); 
                returnMsg=""+e;

            }
            return returnMsg;
        }

        protected void onPostExecute(String result)
            {


            for(int i = 0; i < atList.size(); i++)
            {
            ListView mainListView = (ListView) findViewById(R.id.listView1);


            ArrayAdapter<String>  mArrayAdapter = new ArrayAdapter<String>(RetrieveActivity.this,android.R.layout.simple_list_item_1,mNameList);


            mainListView.setAdapter(mArrayAdapter);

            mNameList.add(atList.get(i).toString());
            mArrayAdapter.notifyDataSetChanged();
            }
            Toast.makeText(getApplicationContext(),result, Toast.LENGTH_SHORT).show();
            EditText myData1=(EditText)findViewById(R.id.editText1);
            myData1.setText(atList.get(0));

            }
    }

}
  • getDateTo()
    中:

  • getData()
    中:

  • onPostExecute
    中:

       long dateTo = -1L;
        if((dateTo = getDateTo()) == -1L){
            return null;
        }
        String toTS = "" + getDateTo();
    
  • 请尝试以下操作:

    package com.example.m2mai;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.sql.Timestamp;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.Toast;
    
    
    public class RetrieveActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_retrieve);
        }
    
    
    
        public void getStream(View v)
        {   
            new MyAsyncTask().execute();
        }
    
    private class MyAsyncTask extends AsyncTask<String, Void, String>
    {   
        ArrayList<String> mNameList = new ArrayList<String>();
        public ArrayList<String> atList=new ArrayList<String>();
        public ArrayList<String> dataList=new ArrayList<String>();
    
    
            protected String doInBackground(String... params) 
            {
                return getData();
    
            }
            public long getDateTo() 
          {
            EditText toText = (EditText)findViewById(R.id.dateTo);
            String To = toText.getText().toString();
    
            DateFormat dateFormatTo = new SimpleDateFormat("dd/MM/yyyy");
            Date dateTo = null;
            try {
                dateTo = dateFormatTo.parse(To);
            } catch (java.text.ParseException e) {
                .runOnUiThread(new Runnable(){
                      public void run() {
                          Toast.makeText(getApplicationContext(),"Please key in the correct input",    Toast.LENGTH_LONG).show();
                      }
                    });
                e.printStackTrace();
            }
            long timeTo = dateTo.getTime();
            new Timestamp(timeTo);  
            return timeTo/1000;
    
          }
    
            protected String getData()
            {
                String toTS = ""+getDateTo();
                String decodedString="";
                String returnMsg="";
                String request = "http://api.carriots.com/devices/defaultDevice@eric3231559.eric3231559/streams/?order=-1&max=10&at_to="+toTS;
                URL url;
                HttpURLConnection connection = null;  
                try {
                    url = new URL(request); 
                    connection = (HttpURLConnection) url.openConnection();
    
                    connection.addRequestProperty("carriots.apikey", "1234567");
                    connection.addRequestProperty("Content-Type", "application/json");
                    connection.setRequestMethod("GET"); 
    
                    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    while ((decodedString = in.readLine()) != null) 
                    {
                        returnMsg+=decodedString;
                    }
                    in.close();
                    connection.disconnect();
                    JSONObject nodeRoot = new JSONObject(returnMsg); 
                    JSONArray res = nodeRoot.getJSONArray("result");
    
                     for (int i = 0; i < res.length(); i++) 
                        {
                        JSONObject childJSON = res.getJSONObject(i);
                        if (childJSON.get("data")!=null)
                            {
                           String value = childJSON.getString("data");
                           dataList.add(value);
                           JSONObject node=new JSONObject(value);
                           atList.add(node.get("temperature").toString()); 
                            }
                        } 
                     }
                     catch (Exception e) 
                {
                    e.printStackTrace(); 
                    returnMsg=""+e;
    
                }
                return returnMsg;
            }
    
            protected void onPostExecute(String result)
                {
    
    
                for(int i = 0; i < atList.size(); i++)
                {
                ListView mainListView = (ListView) findViewById(R.id.listView1);
    
    
                ArrayAdapter<String>  mArrayAdapter = new ArrayAdapter<String>(RetrieveActivity.this,android.R.layout.simple_list_item_1,mNameList);
    
    
                mainListView.setAdapter(mArrayAdapter);
    
                mNameList.add(atList.get(i).toString());
                mArrayAdapter.notifyDataSetChanged();
                }
                Toast.makeText(getApplicationContext(),result, Toast.LENGTH_SHORT).show();
                EditText myData1=(EditText)findViewById(R.id.editText1);
                myData1.setText(atList.get(0));
    
                }
        }
    
    }
    
  • getDateTo()
    中:

  • getData()
    中:

  • onPostExecute
    中:

       long dateTo = -1L;
        if((dateTo = getDateTo()) == -1L){
            return null;
        }
        String toTS = "" + getDateTo();
    

  • 使
    布尔标志=false全局

    内部捕捉块make
    flag=true

    if
    块中运行Toast

    if(result == null) {
            return;
        }
    
    里面