zoukankan      html  css  js  c++  java
  • notifyDataSetChanged()刷新ListView(使用JSONArray绑定的Adapter)

    1.fragment代码:
    package com.ts.fragment;




    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Random;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import com.example.mywinxintest.R;
    import com.ts.fragment.AutoListView;
    import com.ts.fragment.AutoListView.OnLoadListener;
    import com.ts.fragment.AutoListView.OnRefreshListener;
    import com.ts.myst.JSONArrayAdapter;
    import com.ts.util.HttpUtil;
    import android.annotation.SuppressLint;
    import android.graphics.Paint;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v4.app.Fragment;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.ListView;
    import android.widget.Spinner;
    import android.widget.TextView;




    public class SearchFragment extends Fragment implements OnRefreshListener,
    OnLoadListener
    {
    Spinner areaSpinner;
    TextView searchTextView;
     ListView itemListView;
     Map<String, String> countMap = new HashMap<String, String>();
     String url1 = HttpUtil.BASE_URL+"asset_findAssetArea.action";
     String url2 = HttpUtil.BASE_URL+"asset_findAssetSB.action";
     String url3 = HttpUtil.BASE_URL+"asset_findAssetSBCount.action";
     private AutoListView lstv;
     private JSONArrayAdapter jsonArrayAdapter;
     private JSONArray itemJsonArray = new JSONArray();
     private String areaId;
     private Handler handler = new Handler(){
     @SuppressLint("NewApi")
     public void handleMessage(Message msg) {
      String result = (String) msg.obj;
      JSONArray resultJsonArray = null;
      try {
      resultJsonArray = new JSONArray(result);
      } catch (JSONException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      }
      switch (msg.what) {
      case AutoListView.REFRESH:
      lstv.onRefreshComplete();


      try {
      for (int i = 0; i < itemJsonArray.length(); i++) {
      itemJsonArray.remove(i);
      }
      for (int i = 0; i < resultJsonArray.length(); i++) {
      itemJsonArray.put(resultJsonArray.get(i));
      }
       
      } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
       
      break;




      case AutoListView.LOAD:
      lstv.onLoadComplete();
      for (int i = 0; i < resultJsonArray.length(); i++) {
      try {
      itemJsonArray.put(resultJsonArray.get(i));
      } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      }
      break;
      }
      lstv.setResultSize(resultJsonArray.length());
      jsonArrayAdapter.notifyDataSetChanged();
     };
     };
     @Override
     public View onCreateView(LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState)
     {
     View v = inflater.inflate(R.layout.search_fragment, null) ;
     lstv = (AutoListView) v.findViewById(R.id.lstv);
     try{
      itemJsonArray = new JSONArray("[]");
      jsonArrayAdapter = new JSONArrayAdapter(getActivity(), itemJsonArray, "assetCode_assetName_assetSyr", false, "3");
    // itemListView.setAdapter(adapter2);
      lstv.setAdapter(jsonArrayAdapter);
      lstv.setOnRefreshListener(this);
      lstv.setOnLoadListener(this);
      initData(areaId);
     
      @Override
      public void onNothingSelected(AdapterView<?

    > parent) {
      // TODO Auto-generated method stub
       
      }
      });
     }
     catch(Exception e){
      e.printStackTrace();
     }
     return v ;
     }
     private void initData(String areaId) {
     loadData(AutoListView.REFRESH,areaId);
     }
     private void loadData(final int what, final String areaId) {
     
     new Thread(new Runnable() {
       
      @Override
      public void run() {
      // TODO Auto-generated method stub
      try {
      Thread.sleep(700);
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      Message msg = handler.obtainMessage();
      msg.what = what;
      try {
      msg.obj = <span style="font-family: Arial, Helvetica, sans-serif;">getData(areaId) <span style="font-family: Arial, Helvetica, sans-serif;">; 
      } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      handler.sendMessage(msg);
      }
     }).start();
     }
     @Override
     public void onLoad() {
     // TODO Auto-generated method stub
     loadData(AutoListView.LOAD,areaId);
     }
     @Override
     public void onRefresh() {
     // TODO Auto-generated method stub
     loadData(AutoListView.REFRESH,areaId);
     }
     // 測试数据
     public String getData(String areaId) {
     String result = null;
     try {
      result = HttpUtil.postRequest(url2, countMap);//通过server获取数据
     } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }




     return result;
     }
    }

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6920557.html
Copyright © 2011-2022 走看看