package com.example.lenovo.shuaxin;import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hand.pulltorefresh.library.PullToRefreshBase;
import com.hand.pulltorefresh.library.PullToRefreshListView;import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;public class MainActivity extends AppCompatActivity {
    public int position;
    PullToRefreshListView mPullToRefreshListView;
    private SimpleAdapter adapter;
    public static final int  UPDATE=1;
    private List<Map<String,String>> list;
    // 数据组合
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.id_lv_test);
        mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//设置下拉模式
        adapter=new SimpleAdapter(this, list, R.layout.simple_layout, new String[] {"title"}, new int[] {R.id.simple_tv});//
        mPullToRefreshListView.setAdapter(adapter);//加入适配器内容
        mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
            //nizhegge fangfang没被执行到 ,这里出问题,没进来····试一下就知道l刷一下
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {                Thread thread=new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            Thread.sleep(2000);
                            OkHttpClient client=new OkHttpClient();
                            Request request=new Request.Builder().url("http://116.29.202.174:8080/light1.json").build();//获取内容
                          /*  if(!request.isHttps()){
                                Toast.makeText(MainActivity.this,"获取数据出现错误",Toast.LENGTH_LONG).show();
                            }*/
                            Response response=client.newCall(request).execute();//发送请求并获取服务器返回来的数据
                            String responsedata=response.body().string();//获取服务器具体返回的信息
                            pasrseJSONwithGSON(responsedata);
                        }
                        catch (InterruptedException e){
                            e.printStackTrace();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                });
                thread.start();
            }
        });
        mPullToRefreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent=new Intent(MainActivity.this, zdludeng.class);//页面跳转
               intent.putExtra("data", position);//将要传递的值附加到Intent对象
                startActivity(intent);
                //Toast.makeText(MainActivity.this,strs.toString(),Toast.LENGTH_SHORT).show();
                //Intent intent=new Intent(MainActivity.this,zdludeng.class);//跳转到intent界面
                //startActivity(intent);
               // finish();//结束界面
            }
        });
    }
    private void pasrseJSONwithGSON(String jsondata){
        Gson gosn=new Gson();//创建解gson析对象
        list=gosn.fromJson(jsondata,new TypeToken<List<Light>>(){}.getType());//Gson解析方法
        Message messages=new Message();
        messages.what=UPDATE;
        handler.sendMessage(messages);
    }
    Handler handler= new Handler() {
        public void handleMessage(Message msg){
            switch (msg.what){
                case UPDATE:
/*                    Gson gosn=new Gson();
                    SharedPreferences get=getSharedPreferences("data",MODE_PRIVATE);
                    String id=get.getString("str","");
                    list=gosn.fromJson(id,new TypeToken<List<ludeng>>(){}.getType());*/
                    Log.i("MainActivity","消息被执行了");
                    if(list!= null ) {
                        list.clear();//数据清空,防止重复加载
                        for(int i=0;i<list.size();i++)
                        {
                            Map<String,String> map=new HashMap<String,String>();
                            map.put("title", ""+i+"");
                            list.add(map);
                        }
                    }
                   else {
                        Toast.makeText(MainActivity.this,"网络发生故障",Toast.LENGTH_LONG).show();
                    }
                    break;
                default:
                    break;
            }
            adapter.notifyDataSetChanged();//通知listview界面更新
            mPullToRefreshListView.onRefreshComplete();//通知mpullToRefreshListView刷新完成,避免重复刷新
        }
    };}
然后我运行后一直都是
11-04 16:25:30.293 2377-2385/? W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/user/0/com.google.android.gms/databases/help_responses.db.18' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
新手的我表示看不到

解决方案 »

  1.   

    一些注释的代码忘记删除了,删除完是这样的:
    import android.content.Intent;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.Toast;
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    import com.hand.pulltorefresh.library.PullToRefreshBase;
    import com.hand.pulltorefresh.library.PullToRefreshListView;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;public class MainActivity extends AppCompatActivity {
        PullToRefreshListView mPullToRefreshListView;
        private SimpleAdapter adapter;
        public static final int  UPDATE=1;
        private List<Map<String,String>> list;
        // 数据组合
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.id_lv_test);
            mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//设置下拉模式
            adapter=new SimpleAdapter(this, list, R.layout.simple_layout, new String[] {"title"}, new int[] {R.id.simple_tv});//
            mPullToRefreshListView.setAdapter(adapter);//加入适配器内容
            mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
                //nizhegge fangfang没被执行到 ,这里出问题,没进来····试一下就知道l刷一下
                @Override
                public void onRefresh(PullToRefreshBase<ListView> refreshView) {                Thread thread=new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                Thread.sleep(2000);
                                OkHttpClient client=new OkHttpClient();
                                Request request=new Request.Builder().url("http://116.29.201.184:8080/light.json").build();//获取内容
                                Response response=client.newCall(request).execute();//发送请求并获取服务器返回来的数据
                                String responsedata=response.body().string();//获取服务器具体返回的信息
                                pasrseJSONwithGSON(responsedata);
                            }
                            catch (InterruptedException e){
                                e.printStackTrace();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                    thread.start();
                }
            });
            mPullToRefreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent intent=new Intent();
                    intent.setClass(MainActivity.this, zdludeng.class);//页面跳转
                   intent.putExtra("data", position);//将要传递的值附加到Intent对象
                    startActivity(intent);
                   finish();//结束界面
                }
            });
        }
        private void pasrseJSONwithGSON(String jsondata){
            Gson gosn=new Gson();//创建解gson析对象
            list=gosn.fromJson(jsondata,new TypeToken<List<Light>>(){}.getType());//Gson解析方法
            Message messages=new Message();
            messages.what=UPDATE;
            handler.sendMessage(messages);
        }
        Handler handler= new Handler() {
            public void handleMessage(Message msg){
                switch (msg.what){
                    case UPDATE:
                        Log.i("MainActivity","消息被执行了");
                        if(list!= null ) {
                            list.clear();//数据清空,防止重复加载
                            for(int i=0;i<list.size();i++)
                            {
                                Map<String,String> map=new HashMap<String,String>();
                                map.put("title", "��������"+i+"��");
                                list.add(map);
                            }
                        }
                       else {
                            Toast.makeText(MainActivity.this,"网络发生故障",Toast.LENGTH_LONG).show();
                        }
                        break;
                    default:
                        break;
                }
                adapter.notifyDataSetChanged();//通知listview界面更新
                mPullToRefreshListView.onRefreshComplete();//通知mpullToRefreshListView刷新完成,避免重复刷新
            }
        };}
      

  2.   

    gosn组件之前可以用的呀  改了代码就不行了