实现日夜间转换获取数据上下刷新(main)

来源:互联网 发布:mysql 5.7.20安装教程 编辑:程序博客网 时间:2024/05/21 19:27
package com.example.zhoukao2lianxi;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.AsyncTask;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private ImageLoader imageLoader;    private int p = 1;    private ImageView image2;    private int theme = R.style.AppTheme;    private XListView listview;    private boolean flag;    private Myadapter adapter;    private MyopenHelper myopenHelper;    private SQLiteDatabase db;    @Override    protected void onCreate(Bundle savedInstanceState) {        if (savedInstanceState != null) {            theme = savedInstanceState.getInt("theme");            setTheme(theme);        }        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listview = (XListView) findViewById(R.id.listview);        listview.setPullLoadEnable(true);        listview.setXListViewListener(this);        image2 = (ImageView) findViewById(R.id.image2);        image2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                theme = (theme == R.style.AppTheme) ? R.style.NightAppTheme : R.style.AppTheme;                MainActivity.this.recreate();            }        });        getDates("http://api.expoon.com/AppNews/getNewsList/type/1/", p + "");        myopenHelper = new MyopenHelper(this);        db = myopenHelper.getWritableDatabase();        ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);        NetworkInfo info = manager.getActiveNetworkInfo();        if (info.getType() != ConnectivityManager.TYPE_WIFI) {            Cursor cursor = db.query("goiu", null, null, null, null, null, null);            ArrayList<User> list2 = new ArrayList<>();            while (cursor.moveToNext()) {                String title = cursor.getString(cursor.getColumnIndex("title"));                String pic = cursor.getString(cursor.getColumnIndex("pic"));                User user = new User();                user.getPic();                user.getTitle();                list2.add(user);            }            MyAdater2 myAdater2 = new MyAdater2(list2, MainActivity.this);            listview.setAdapter(myAdater2);        }    }    public void getDates(String path, final String page) {        new AsyncTask<String, Void, String>() {            private List<MenuInfo.DataBean> data;            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                if (s != null) {                    Gson gson = new Gson();                    MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class);                    data = menuInfo.getData();                    if (adapter == null) {                        adapter = new Myadapter(data);                        listview.setAdapter(adapter);                    } else {                        adapter.LoadMore(data, flag);                        adapter.notifyDataSetChanged();                    }//                    listview.setOnScrollListener(new AbsListView.OnScrollListener() {////                        @Override//                        public void onScrollStateChanged(AbsListView view, int scrollState) {//                            switch (scrollState) {//                                //滚动结束//                                case AbsListView.OnScrollListener.SCROLL_STATE_IDLE://                                    //滚动停止时,判断如果滚动到底部//                                    if (view.getLastVisiblePosition() == view.getCount() - 1) {////                                        // 使页数加1//                                        p++;//                                        Toast.makeText(MainActivity.this, "" + p, Toast.LENGTH_SHORT).show();////                                        huodeshuju(ye);//                                        getDates("http://api.expoon.com/AppNews/getNewsList/type/1/", p + "");////                                        adapter.notifyDataSetChanged();//////                                    } else if (view.getFirstVisiblePosition() == 0) {//                                        //滚动到顶部//                                        // 重新定义为第一页////                                        data.clear();//                                        p = 1;//                                        Toast.makeText(MainActivity.this, "" + p, Toast.LENGTH_SHORT).show();//                                        // 获得数据//                                        getDates("http://api.expoon.com/AppNews/getNewsList/type/1/", p + "");//                                        // 刷新适配器//                                        adapter.notifyDataSetChanged();////                                    }////                                    break;//                                //开始滚动//                                case AbsListView.OnScrollListener.SCROLL_STATE_FLING:////                                    break;//                                //正在滚动//                                case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:////                                    break;////                                default://                                    break;//                            }////                        }////                        @Override//                        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {//////                        }//                    });                }            }            @Override            protected String doInBackground(String... strings) {                try {                    String path = strings[0];                    URL url = new URL(path);                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                    urlConnection.setRequestMethod("POST");                    urlConnection.setConnectTimeout(2000);                    urlConnection.setReadTimeout(2000);                    OutputStream os = urlConnection.getOutputStream();                    os.write(("p=" + page).getBytes());                    os.flush();                    int code = urlConnection.getResponseCode();                    if (code == 200) {                        InputStream is = urlConnection.getInputStream();                        String json = streamTook.read(is);                        return json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return null;            }        }.execute(path, page);    }    @Override    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        outState.putInt("theme", theme);    }    @Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);        theme = savedInstanceState.getInt("theme");    }    @Override    public void onRefresh() {        ++p;        getDates("http://api.expoon.com/AppNews/getNewsList/type/1/", p + "");        flag = true;        listview.stopRefresh(true);    }    @Override    public void onLoadMore() {        ++p;        getDates("http://api.expoon.com/AppNews/getNewsList/type/1/", p + "");        flag = false;        listview.stopLoadMore();    }    class Myadapter extends BaseAdapter {        List<MenuInfo.DataBean> data;        private final DisplayImageOptions options;        public Myadapter(List<MenuInfo.DataBean> data) {            this.data = data;            imageLoader = ImageLoader.getInstance();            File file = new File(Environment.getExternalStorageDirectory(), "/vjfct");            if (!file.exists())                file.mkdirs();            ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(MainActivity.this)                    .diskCache(new UnlimitedDiskCache(file))                    .build();            imageLoader.init(configuration);            options = new DisplayImageOptions.Builder()                    .showImageOnLoading(R.mipmap.ic_launcher)                    .cacheOnDisk(true)                    .build();        }        public void LoadMore(List<MenuInfo.DataBean> datas, boolean flag) {            for (MenuInfo.DataBean bean : datas) {                if (flag) {                    data.add(0, bean);                } else {                    data.add(bean);                }            }        }        @Override        public int getCount() {            return data.size();        }        @Override        public Object getItem(int position) {            return data.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder viewHolder = null;            if (convertView == null) {                convertView = convertView.inflate(MainActivity.this, R.layout.item, null);                viewHolder = new ViewHolder();                viewHolder.text = convertView.findViewById(R.id.text);                viewHolder.imagess = convertView.findViewById(R.id.imagess);                convertView.setTag(viewHolder);            } else {                viewHolder = (ViewHolder) convertView.getTag();            }            viewHolder.text.setText(data.get(position).getNews_title());            getimage(data.get(position).getPic_url(), viewHolder.imagess);            return convertView;        }        class ViewHolder {            TextView text;            ImageView imagess;        }    }    public void getimage(String path, ImageView imageView) {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .cacheOnDisk(true)                .cacheInMemory(true)                .build();        ImageLoader.getInstance().displayImage(path, imageView, options);    }}
原创粉丝点击