滚动时自定义列表视图中的图像重复

时间:2016-09-23 13:47:20

标签: android json http

每当我试图从JsonArray中删除一个对象时,它表明没有这样的方法存在。我的目标API版本是8.我查找有关此问题的其他问题,但找不到合适的解决方案。请帮帮我。

 class JSONAsync extends AsyncTask<String, Void, JSONArray>
{


    @Override
    protected void onPreExecute() 
    {
        super.onPreExecute();
        progressDialog = Util.setProgressDialog(Activity.this, "Please Wait",
                "loading....", false);
        progressDialog.show();
    }

    @Override
    protected JSONArray doInBackground(String... urls) 
    {

        try
        {       
            HttpGet httppost = new HttpGet(url);
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httppost);

            // StatusLine stat = response.getStatusLine();
            int status = response.getStatusLine().getStatusCode();

            if (status == 200) 
            {
                HttpEntity entity = response.getEntity();
                String resString = EntityUtils.toString(entity);

                JSONObject jso= new JSONObject(resString);

                JSONArray jsono= jso.getJSONArray("jobmasterto");
                Log.e("jason array is this", ""+jsono);
                for (int i = 0; i < jsono.length(); i++) {
                    if (jsono.getJSONObject(i).getString("jobName").equals(null) || jsono.getJSONObject(i).getString("jobName").equals("null") || jsono.getJSONObject(i).getString("jobName").equals("")) {
                        Log.e("Output : : ", jsono.getJSONObject(i).getString("jobName"));
                        jsono.remove(i);
                    }



                }             
                if(jsono.length()>=0)
                {
                    jobname = new String[(jsono.length())];
                    jobid = new String[(jsono.length())];
                    for(int i=0;i<jsono.length();i++)
                    {
                        JSONObject js = jsono.getJSONObject(i);

                            Log.e("Name : ", jsono.getJSONObject(i).getString("jobName"));
                            jobname[i] = jsono.getJSONObject(i).getString("jobName");
                            Log.e("Id : ", jsono.getJSONObject(i).getString("jobId"));
                            jobid[i] = jsono.getJSONObject(i).getString("jobId");

                    }
                    return jsono;
                }
                else
                {
                    Toast.makeText(getApplicationContext(), "No Workers available  : "+ logedinUserId , Toast.LENGTH_LONG).show();
                    return null;
                }
            }


        } catch (IOException e) 
        {
            e.printStackTrace();
        } catch (JSONException e)
        {
            e.printStackTrace();
        }
        return null;     
    }

    protected void onPostExecute(JSONArray result) 
    {
        progressDialog.dismiss();

    }
}   

1 个答案:

答案 0 :(得分:0)

  1. 你是否真的想要支持一些如此陈旧的设备?
  2. 尽管如此,请使用:

     JSONObject jso= new JSONObject(resString);
    
    JSONArray jsonArray = jso.getJSONArray("jobmasterto");
    
    Log.e("jason array is this", ""+jsonArray);
    ArrayList<Integer> i_ar = new ArrayList<Integer>();
                    for (int i = 0; i < jsonArray.length(); i++) {
                        if (jsonArray.getJSONObject(i).getString("jobName").equals(null) || jsonArray.getJSONObject(i).getString("jobName").equals("null") || jsonArray.getJSONObject(i).getString("jobName").equals("")) {
                            Log.e("Output : : ", jsonArray.getJSONObject(i).getString("jobName"));
                            i_ar.add(i);
                        }
    
    
    
                    }             
    
    JSONArray jsono = new JSONArray();  
    
    int len = jsonArray.length();
    if (jsonArray != null) { 
       for (int i=0;i<len;i++)
       { 
           //Excluding the item at position
            if (i_ar.indexOf(i) == -1) 
            {
                list.put(jsonArray.get(i));
            }
       } 
    }
    
    
    
                    if(jsono.length()>=0)
                    {
    //.... continue...