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;

 }

}

notifyDataSetChanged()刷新ListView(使用JSONArray绑定的Adapter)的更多相关文章

  1. 关于ListView中notifyDataSetChanged()刷新数据不更新原因

    使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据. 这时候就要注 ...

  2. 滚动到底部加载更多及下拉刷新listview的使用

    最新内容建议直接访问原文:滚动到底部加载更多及下拉刷新listview的使用 本文主要介绍可同时实现下拉刷新及滑动到底部加载更多的ListView的使用. 该ListView优点包括:a. 可自定义下 ...

  3. RecyclerView加载更多用notifyDataSetChanged()刷新图片闪烁

    首先来看看对比ListView看一下RecyclerView的Adapter主要增加了哪些方法: notifyItemChanged(int position) 更新列表position位置上的数据可 ...

  4. RecyclerView中notifyDataSetChanged刷新总结

    除了adapter.notifyDataSetChanged()这个方法之外,新的Adapter还提供了其他的方法,如下: public final void notifyDataSetChanged ...

  5. ListView控件绑定DataSet

    DataSet数据集,数据缓存在客户端内存中,支持断开式连接.   在对DataSet做操作的时候,首先一定要修改其行的状态,然后执行SqlDataAdapter的Update方法,Update方法根 ...

  6. 关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法

    文章转载自:关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法 | TeachCourse

  7. ListView:The content of the adapter has changed but ListView did not receive a notification终极解决方法

    使用ListView时遇到如下的异常信息: 10-26 18:30:45.085: E/AndroidRuntime(7323): java.lang.IllegalStateException: T ...

  8. 自定义控件学习——下拉刷新ListView

    效果 开始用Android Studio写了,还有挺多不明白这IDE用法的地方....蛋疼 主要思路 1. 添加了自定义的头布局    2. 默认让头布局隐藏setPadding.设置 -自身的高度  ...

  9. Android 自定义下拉刷新ListView

    package com.dwtedx.qq.view; import android.content.Context; import android.util.AttributeSet; import ...

随机推荐

  1. springboot创建项目

    Springboot作为轻量级快速开发受到无数java人的青睐,Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过 ...

  2. npm搭建React项目

    转自:http://blog.csdn.net/u012859720/article/details/70597119 要想使用npm,首先安装Node.js 一.安装全局包 $ npm instal ...

  3. 3.sql基础

    sql语句是和dbms交谈专用的语句,不同dbms都认sql语法 sql语句中字符串用单引号 sql语句是大小写不敏感的,不敏感指的是sql关键字,字符串值还是大小写敏感的 创建表.删除表不仅可以手工 ...

  4. http接口 两种调用http接口的方法

    import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; ...

  5. 日期Date和String/Long之间的转换

    下面是关于日期的常见的几种类型转换: import java.text.ParseException; import java.text.SimpleDateFormat; import java.u ...

  6. 子线程更新UI

    https://www.cnblogs.com/joy99/p/6121280.html

  7. poj1328 Radar Installation 区间贪心

    题目大意: 在X轴选择尽量少的点作为圆心,作半径为d的圆.使得这些圆能覆盖所有的点. 思路: 把每个点都转化到X轴上.也就是可以覆盖这个点的圆心的位置的范围[a,b].然后按照每个点对应的a从小到大排 ...

  8. Android_方向传感器

    Android方向传感器小案例,主要代码如下: package com.hb.direction; import android.app.Activity; import android.conten ...

  9. DataTable如何去除重复的行

    两种方法1 数据库直接去除重复select distinct * from 表名去除了重复行distinct 2 对 DataTable直接进行操作DataTable dt=db.GetDt(&quo ...

  10. C#程序集版本控制文件属性祥解

    using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices ...