Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayAdapter泛型中出错_Java_Android - Fatal编程技术网

Java ArrayAdapter泛型中出错

Java ArrayAdapter泛型中出错,java,android,Java,Android,这是我在错误行中看到的 -此行有多个标记 -ArrayAdapter是原始类型 -泛型类型ArrayAdapter的引用应参数化 -构造函数ArrayAdapter(RetrieveActivity.MyAsyncTask,int,ArrayList)为 未定义 我可以知道我的密码有什么问题吗。我想在列表视图中显示arraylist。但是由于这个错误,我不能去。tq package com.example.m2mai; import java.io.BufferedReader; import

这是我在错误行中看到的
-此行有多个标记
-ArrayAdapter是原始类型
-泛型类型ArrayAdapter的引用应参数化
-构造函数ArrayAdapter(RetrieveActivity.MyAsyncTask,int,ArrayList)为 未定义
我可以知道我的密码有什么问题吗。我想在列表视图中显示arraylist。但是由于这个错误,我不能去。tq

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 {
    ArrayAdapter mArrayAdapter;
    ArrayList mNameList = new ArrayList();
    @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>
{
    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) {
            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=5&at_to="+toTS;
            URL url;
            HttpURLConnection connection = null;  
            try {
                url = new URL(request); 
                connection = (HttpURLConnection) url.openConnection();
                //establish the parameters for the http post request
                connection.addRequestProperty("carriots.apikey", "====================");
                connection.addRequestProperty("Content-Type", "application/json");
                connection.setRequestMethod("GET"); 
                //create a buffered reader to interpret the incoming message from the carriots system
                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;
            }
            //Log.d("returnMsg",returnMsg.toString());
            return returnMsg;
        }

        protected void onPostExecute(String result)
            {

//          int a = atList.size();
//          String b = ""+a;
//          Log.d("atList",b);
            for(int i = 0; i < atList.size(); i++)
            {
            ListView mainListView = (ListView) findViewById(R.id.listView1);

            // Create an ArrayAdapter for the ListView
            mArrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,mNameList); //<---- error here

            // Set the ListView to use the ArrayAdapter
            mainListView.setAdapter(mArrayAdapter);

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

            }
    }

}
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;
公共类检索活动扩展了活动{
ArrayAdapter mArrayAdapter;
ArrayList mNameList=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_retrieve);
}
公共void getStream(视图v)
{   
新建MyAsyncTask().execute();
}
私有类MyAsyncTask扩展了AsyncTask
{
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){
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=5&at_to=“+toTS;
网址;
HttpURLConnection=null;
试一试{
url=新url(请求);
connection=(HttpURLConnection)url.openConnection();
//为http post请求建立参数
connection.addRequestProperty(“carriots.apikey”,“========================================”;
addRequestProperty(“内容类型”、“应用程序/json”);
connection.setRequestMethod(“GET”);
//创建一个缓冲读取器来解释来自carriots系统的传入消息
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
它希望您提供适配器将要处理的对象类型。例如

 ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(... 
onPostExecute
中,您正在创建适配器的多个实例。我认为这没有用

@Override
protected void onPostExecute(String result) {

        ListView mainListView = (ListView) findViewById(R.id.listView1);
        mArrayAdapter = new ArrayAdapterString> (NameOfYoutActivity.this, android.R.layout.simple_list_item_1,mNameList);

        for(int i = 0; i < atList.size(); i++)  { 
             mArrayAdapter.add(atList.get(i).toString());                  
        }
        Toast.makeText(getApplicationContext(),result, Toast.LENGTH_LONG).show();
        EditText myData1=(EditText)findViewById(R.id.editText1);
        myData1.setText(atList.get(0));

} 
@覆盖
受保护的void onPostExecute(字符串结果){
ListView mainListView=(ListView)findViewById(R.id.listView1);
mArrayAdapter=newarrayadapterstring>(NameOfYoutActivity.this,android.R.layout.simple\u list\u item\u 1,mNameList);
对于(inti=0;i
还指定指定阵列适配器类型的参数,以删除此类警告

ArrayAdapter<String>  mArrayAdapter = new ArrayAdapter<String>(RetrieveActivity.this,android.R.layout.simple_list_item_1,mNameList);
ArrayAdapter mArrayAdapter=newarrayadapter(RetrieveActivity.this,android.R.layout.simple\u list\u item\u 1,mNameList);
同时将arraylist的定义更改为

ArrayList<String> mNameList = new ArrayList<String>();
ArrayList mNameList=new ArrayList();
您可以在
onCreate中创建UI(
ArrayList<String> mNameList = new ArrayList<String>();
// "this" is not application context.
mArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mNameList);