AsyncTask+ListView
来源:互联网 发布:weka apriori算法 编辑:程序博客网 时间:2024/06/08 09:06
//布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.e.wangluopanduan.MainActivity"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/listView" /></RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" /> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" /></LinearLayout>//在AndroidManifest.xml中配置//代码如下:<uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
MainActivity:
package com.example.e.wangluopanduan;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private ListView listView; private String path; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView); if (isNetworkAvailable(this)){ MyAsyncTask myAsyncTask = new MyAsyncTask(this); path="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android"; myAsyncTask.execute(path,listView); }else { List<String> list=new ArrayList<>(); list.add("网络超时..."); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list); listView.setAdapter(adapter); } } public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo info = connectivity.getActiveNetworkInfo(); if (info != null && info.isConnected()) { // 当前网络是连接的 if (info.getState() == NetworkInfo.State.CONNECTED) { // 当前所连接的网络可用 return true; } } } return false; }}
//MyAsyncTask:
package com.example.e.wangluopanduan;import android.content.Intent;import android.os.AsyncTask;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import com.google.gson.Gson;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;/** * Created by e on 2017/5/12. */public class MyAsyncTask extends AsyncTask<Object, String, String> { private MainActivity activity; private ListView listView; private List<Bean.DataBean.SerialBean> list; public MyAsyncTask(MainActivity activity) { this.activity = activity; } @Override protected String doInBackground(Object... params) { try { String path = (String) params[0]; listView = (ListView) params[1]; URL url = new URL(path); HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection(); httpURLConnection.connect(); if (httpURLConnection.getResponseCode()==HttpURLConnection.HTTP_OK){ InputStream inputStream = httpURLConnection.getInputStream(); StringBuffer stringBuffer = new StringBuffer(); byte[]buff=new byte[1024]; int len=-1; while ((len=inputStream.read(buff))!=-1){ String s = new String(buff, 0, len, "utf-8"); stringBuffer.append(s); } inputStream.close(); httpURLConnection.disconnect(); Log.w("doInBackground","onPostExecute:"+stringBuffer.toString()); return stringBuffer.toString(); }else { return null; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.d("onPostExecute","onPostExecute"+s); Gson gson=new Gson(); list=new ArrayList<>(); Bean bean=gson.fromJson(s,Bean.class); list.addAll(bean.getData().getSerial()); final MyAdapter adapter = new MyAdapter(activity, list); listView.setAdapter(adapter); }}
//MyAdapter:
package com.example.e.wangluopanduan;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;/** * Created by e on 2017/5/12. */public class MyAdapter extends BaseAdapter{ private Context context; private List<Bean.DataBean.SerialBean> list; public MyAdapter(Context context, List<Bean.DataBean.SerialBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView==null){ holder=new Holder(); convertView=View.inflate(context,R.layout.item_layout,null); holder.tv1= (TextView) convertView.findViewById(R.id.text1); holder.tv2= (TextView) convertView.findViewById(R.id.text2); convertView.setTag(holder); }else { holder= (Holder) convertView.getTag(); } Bean.DataBean.SerialBean serialBean=list.get(position); holder.tv1.setText(serialBean.getTitle()); holder.tv2.setText(serialBean.getExcerpt()); return convertView; } class Holder{ TextView tv1; TextView tv2; }}
1 0
- AsyncTask+ListView
- Listview&Adapter&SharedPreferences&AsyncTask
- ListView+AsyncTask展示
- AsyncTask listview加图片
- asynctask展示listview
- ListView结合AsyncTask获取数据
- ListView和AsyncTask结合实现下拉刷新
- Android:ListView数据异步加载、Handler、AsyncTask
- Android-AsyncTask结合Listview 下载显示
- ListView之BaseAdapter和AsyncTask异步任务
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- ListView数据异步加载图片和使用AsyncTask优化
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- AsyncTask实现ListView中异步加载网络图片
- listview+BaseAdapter + AsyncTask异步请求网络 + LruCache缓存图片
- 计算一个字符串中的字串
- $.ajax()引发的对Deferred的总结
- Java环境配置
- 获取天气预报的小爬虫
- javascript生成32位UUID的方法
- AsyncTask+ListView
- HotSpot中的垃圾收集
- setTextColor六种方式
- Java面向对象编程知识点归纳
- PHP关于Braintree支付
- 针对苹果充值的坏账的防范方法
- android Data Binding Library
- codeforces Round #413 Div. 1 + Div. 2 A Carrot Cakes
- 本周的博客----第12周