实现日夜间转换获取数据上下刷新(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); }}
阅读全文
0 0
- 实现日夜间转换获取数据上下刷新(main)
- 实现日夜间转换获取数据上下刷新(myAdapter)
- 实现日夜间转换获取数据上下刷新(MyApplication)
- 实现日夜间转换获取数据上下刷新(mainactivity.xml)
- 实现日夜间转换获取数据上下刷新(item.xml)
- 实现日夜间转换获取数据上下刷新(values-colors)
- 实现日夜间转换获取数据上下刷新(values-mainbackgroud.xml)
- 实现日夜间转换获取数据上下刷新(values-strings.xml)
- 实现日夜间转换获取数据上下刷新(values-styles.xml)
- PullToRefreshListView 获取网络数据实现上下拉刷新加载数据
- 日夜间模式转换
- 日夜间模式转换
- 日夜间模式转换(继承主题模式)
- DayNight实现日夜间模式
- Android主题切换(Theme)实现日夜间功能
- Android主题切换(Theme)实现日夜间功能
- 日夜间
- Android实现日夜间模式切换
- Python环境安装(3.5.4)
- Parenthesis(括号平衡串,匹配问题)
- LeetCode 78. Subsets (Python)
- Aizu 2784 Similarity of Subtrees
- oi中犯过的2b错误
- 实现日夜间转换获取数据上下刷新(main)
- MAC版Eclipse的常用快捷键
- 使用Excel2013制作甘特图
- 8.13
- [BZOJ3389]信号连接
- shell中根据日期进行循环
- Kotlin 包管理
- 仿淘宝购物车的实现
- static,重写,重载到底是啥