簡體   English   中英

滾動時自定義列表視圖中的圖像重復

[英]Image duplicates in custom listview on scrolling

每當我嘗試從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. 您是否真的想支持這么多舊設備而頭痛?
  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... 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM