美文网首页
AsyncTask 这一套(网络请求,gson解析,跳转)

AsyncTask 这一套(网络请求,gson解析,跳转)

作者: bbf7b8bde7af | 来源:发表于2017-07-27 11:56 被阅读0次

//创建AsyncTask对象

AsyncTaskasyncTask = new AsyncTask() {            @Override

protected void onPreExecute() {

super.onPreExecute();

}

//子线程运行的方法

@Override

protected String doInBackground(Void... params) {

//用httpclient请求数据

DefaultHttpClient defaultHttpClient = new DefaultHttpClient();

HttpGet httpGet = new HttpGet(path);

try {

HttpResponse execute = defaultHttpClient.execute(httpGet);

StatusLine statusLine = execute.getStatusLine();

int statusCode = statusLine.getStatusCode();

if (statusCode == 200) {

HttpEntity entity = execute.getEntity();

InputStream content = entity.getContent();

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();                        int len = 0;

byte[] buffer = new byte[1024];

while ((len = content.read(buffer)) != -1) {

byteArrayOutputStream.write(buffer, 0, len);

}

//给主线程返回请求的数据

return byteArrayOutputStream.toString();

}

} catch (IOException e) {

e.printStackTrace();

}                return null;

}

//主线程运行的方法

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

//创建list集合

list = new ArrayList();

//gson解析

Gson gson = new Gson();

final myBean myBean = gson.fromJson(s, myBean.class);

// 把解析出来的内容存入list集合

list = myBean.data;

//找控件

ListView listview = (ListView) findViewById(R.id.listview);

//创建自定义适配器

myBaseAdapter adpter = new myBaseAdapter(list, MainActivity.this);

//设置适配器

listview.setAdapter(adpter);

//设置item的条目点击事件

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View view, int position, long id) {

//跳转到第二个页面

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

//intent传值

intent.putExtra("IMAGEURL", list.get(position).IMAGEURL);

intent.putExtra("TITLE", list.get(position).TITLE);

intent.putExtra("FROMNAME", list.get(position).FROMNAME);

intent.putExtra("SHOWTIME", list.get(position).SHOWTIME);

intent.putExtra("SUBTITLE",list.get(position).SUBTITLE);

startActivity(intent);

}

});

}

};

asyncTask.execute();

}

}

//////////////////////////////////////////////youhua

if (convertView == null) {

holder = new viewHolder();

convertView = convertView.inflate(context, R.layout.item, null);

holder.imageView = (ImageView) convertView.findViewById(R.id.imageview);

holder.title = (TextView) convertView.findViewById(R.id.TITLE);

holder.FROMNAME = (TextView) convertView.findViewById(R.id.FROMNAME);

holder.SHOWTIME = (TextView) convertView.findViewById(R.id.SHOWTIME);

convertView.setTag(holder);

} else {

holder = (viewHolder) convertView.getTag();

}

//这步骤是用imageloder加载图片的

http://www.jianshu.com/p/a8cbb228fb83

这个网址里有

DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()

.cacheInMemory(true)

.cacheOnDisk(true)  .build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)

.defaultDisplayImageOptions(displayImageOptions)

.build();

ImageLoader.getInstance().init(config);

ImageLoader.getInstance().displayImage(list.get(position).IMAGEURL, holder.imageView);

holder.title.setText(list.get(position).TITLE);

holder.FROMNAME.setText(list.get(position).FROMNAME);

holder.SHOWTIME.setText(list.get(position).SHOWTIME);

return convertView;

}

解析惊悚 ViewLoader

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

//这步骤是用imageloder加载图片的

http://www.jianshu.com/p/a8cbb228fb83

这个网址里有

DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()

.cacheInMemory(true)

.cacheOnDisk(true)  .build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)

.defaultDisplayImageOptions(displayImageOptions)

.build();

ImageLoader.getInstance().init(config);

ImageLoader.getInstance().displayImage(list.get(position).IMAGEURL, holder.imageView);

/////


radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

// TODO Auto-generated method stub

switch (checkedId) {

case R.id.but01:

//创建FragmentManager管理者

FragmentManager fragmentManager=getSupportFragmentManager();

//通过FragmentManager开启一个事务

FragmentTransaction transaction=fragmentManager.beginTransaction();

//加载fragment  arg0  占位的控件  第二个参数是加载的Fragment

transaction.replace(R.id.fragment, new Fragment01());

//提交

transaction.commit();

break;

case R.id.but02:

FragmentManager fragmentManager2=getSupportFragmentManager();

FragmentTransaction transaction2=fragmentManager2.beginTransaction();

transaction2.replace(R.id.fragment, new Fragment02());

transaction2.commit();

break;

case R.id.but03:

FragmentManager fragmentManager3=getSupportFragmentManager();

FragmentTransaction transaction3=fragmentManager3.beginTransaction();

transaction3.replace(R.id.fragment, new Fragment03());

transaction3.commit();

break;

default:

break;

}

}

});

相关文章

  • AsyncTask 这一套(网络请求,gson解析,跳转)

    //创建AsyncTask对象 AsyncTaskasyncTask=newAsyncTask(){@Overri...

  • 请求数据

    使用到 Okhttp网络请求 Glide图片加载库 Json解析之Gson OKHttp网络请求的封装:我用的是O...

  • Android 一些开源库

    网络请求 :OkHttp Json解析:Gson SQLite数据库框架:LitePal 图片加载框架:Glide...

  • QuickAF网络连接及数据解析简介

    QuickAF中使用Volley进行网络连接,使用Gson来解析响应数据。为了更方便地执行REST API网络请求...

  • Android 解析不确定类型Json数据

    一般情况下我们Json解析都是预定义类型,在网络请求时通过OkHTTP与Gson等解析库直接解析成对应类型的数据。...

  • Retrofit + OkHttp3 + RxJava2

    配置 满足以下需求 网络请求使用自定义的OkHttpClient 对于Json的解析使用Gson 返回结果支持Rx...

  • 函数记录

    流转String 网络请求 Kotlin使用Gson

  • GSON 解析 JSON

    GSON JSON 介绍 Gson 下载 Gson 解析 和 格式化Gson 格式化Gson 解析 解析asset...

  • 混淆常见坑点

    1、网络请求库用得Gson解析 一定要保持实体类防止混淆 否则会解析出错2、对有反射操作的属性或者成员函数 也要防...

  • 2018-01-11

    Gson解析复杂json数据常用的两种解析方式 Gson gson = new Gson(); 1.gson.fr...

网友评论

      本文标题:AsyncTask 这一套(网络请求,gson解析,跳转)

      本文链接:https://www.haomeiwen.com/subject/mbkzkxtx.html