友盟登录+xlistview+slidingview+xutils_post请求数据
来源:互联网 发布:淘宝女装修图教程 编辑:程序博客网 时间:2024/05/29 19:14
MainActivity
package lianxi.home;import android.content.Intent;import android.support.design.widget.TabLayout;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.Toast;import com.umeng.socialize.UMAuthListener;import com.umeng.socialize.UMShareAPI;import com.umeng.socialize.bean.SHARE_MEDIA;import org.xutils.image.ImageOptions;import org.xutils.x;import java.util.Map;import lianxi.home.adapter.MyPagerAdapter;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView img_head; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initview(); UMShareAPI.get(this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.SINA, authListener); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } UMAuthListener authListener = new UMAuthListener() { /** * @desc 授权开始的回调 * @param platform 平台名称 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @desc 授权成功的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param data 用户资料返回 */ @Override public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) { Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show(); //设置头像换传 String iconurl = data.get("iconurl"); setImage(iconurl, img_head); } /** * @desc 授权失败的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, int action, Throwable t) { Toast.makeText(MainActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show(); } /** * @desc 授权取消的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 */ @Override public void onCancel(SHARE_MEDIA platform, int action) { Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show(); } }; //初始化控件 private void initview() { img_head = (ImageView) findViewById(R.id.img_head); TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout); ViewPager viewpager = (ViewPager) findViewById(R.id.viewpager); viewpager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); tabLayout.setupWithViewPager(viewpager); img_head.setOnClickListener(this); } //头像点击事件 @Override public void onClick(View v) { switch (v.getId()){ case R.id.img_head: UMShareAPI.get(this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener); break; } } //设置头像回传 private void setImage(String path, ImageView img) { ImageOptions build = new ImageOptions.Builder() .setCircular(true) .setCrop(true) .setFadeIn(true) .setSize(100, 100) .setUseMemCache(true) .build(); x.image().bind(img, path, build); }}
Adapter
package lianxi.home.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.view.ViewGroup;import lianxi.home.fragment.MyFragment;public class MyPagerAdapter extends FragmentPagerAdapter { //设置滚动条内容 private String[] titles={"推荐","热点","北京","头条","娱乐","军事","美女","网络","社会","国外"}; public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { MyFragment myfragment = new MyFragment(); return myfragment; } //不让Fragment自动销毁 @Override public void destroyItem(ViewGroup container, int position, Object object) { } //设置长度 @Override public int getCount() { return titles==null?0:titles.length; } //对应设置每个标题 @Override public CharSequence getPageTitle(int position) { return titles[position]; }}
Fragment
package lianxi.home.fragment;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.image.ImageOptions;import org.xutils.x;import java.util.List;import lianxi.home.MainActivity;import lianxi.home.R;import lianxi.home.bean.Food;public class MyFragment extends Fragment implements XListView.IXListViewListener { private XListView xListView; private View view; private int index = 1; private boolean flag; private MyBaseAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.xlistview, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); /* * 设置xlistview 及上下拉 * */ xListView = (XListView) view.findViewById(R.id.xlistview); xListView.setPullLoadEnable(true); xListView.setXListViewListener(this); //调用接口 TestPost("http://apis.juhe.cn/cook/query.php", "小鸡炖蘑菇", "0348a7bbfb2b2175e7bfd45ef47a5324"); } /* * xutilspost查询数据 * **/ private void TestPost(String url, String menu, String key) { url = "http://apis.juhe.cn/cook/query.php"; RequestParams params = new RequestParams(url); params.addBodyParameter("menu", "小鸡炖蘑菇"); params.addBodyParameter("key", "0348a7bbfb2b2175e7bfd45ef47a5324"); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { if (result != null) { //gson解析 Gson gson = new Gson(); Food food = gson.fromJson(result, Food.class); List<Food.ResultBean.DataBean.StepsBean> list = food.getResult().getData().get(0).getSteps(); if (adapter == null) { adapter = new MyBaseAdapter(list); xListView.setAdapter(adapter); } else { adapter.loadmore(list, flag); adapter.notifyDataSetChanged(); } } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } //上拉刷新 @Override public void onRefresh() { index++; TestPost("http://apis.juhe.cn/cook/query.php", "小鸡炖蘑菇", "0348a7bbfb2b2175e7bfd45ef47a5324"); flag = true; xListView.stopRefresh(true); } //下拉加载 @Override public void onLoadMore() { index++; TestPost("http://apis.juhe.cn/cook/query.php", "小鸡炖蘑菇", "0348a7bbfb2b2175e7bfd45ef47a5324"); flag = false; xListView.stopLoadMore(); } //xlistview适配器 class MyBaseAdapter extends BaseAdapter { private List<Food.ResultBean.DataBean.StepsBean> list ; public MyBaseAdapter(List<Food.ResultBean.DataBean.StepsBean> list ) { this.list = list; } public void loadmore(List<Food.ResultBean.DataBean.StepsBean> lists, boolean flag) { for (Food.ResultBean.DataBean.StepsBean bean : lists) { if (flag) { list.add(0, bean); } else { list.add(bean); } } } @Override public int getCount() { return list != null ? list.size() : 0; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return 0; } else { return 1; } } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder1 holder1 = null; ViewHolder2 holder2 = null; switch (type) { case 0: { if (convertView == null) { convertView = convertView.inflate(getActivity(), R.layout.item1, null); holder1 = new ViewHolder1(); holder1.img = (ImageView) convertView.findViewById(R.id.img); holder1.txt = (TextView) convertView.findViewById(R.id.txt); convertView.setTag(holder1); } else { holder1 = (ViewHolder1) convertView.getTag(); } } holder1.txt.setText(list.get(position).getStep()); holder1.img.setTag(list.get(position).getImg()); setImage(list.get(position).getImg(), holder1.img); break; case 1: { if (convertView == null) { convertView = convertView.inflate(getActivity(), R.layout.item2, null); holder2 = new ViewHolder2(); holder2.img = (ImageView) convertView.findViewById(R.id.img); holder2.txt = (TextView) convertView.findViewById(R.id.txt); convertView.setTag(holder2); } else { holder2 = (ViewHolder2) convertView.getTag(); } } holder2.txt.setText(list.get(position).getStep()); holder2.img.setTag(list.get(position).getImg()); setImage(list.get(position).getImg(), holder2.img); break; } return convertView; } } //设置图片 private void setImage(String path, ImageView img) { ImageOptions build = new ImageOptions.Builder() .setCrop(true) .setFadeIn(true) .setSize(100, 100) .setUseMemCache(true) .build(); if (img.getTag() != null && path.equals(img.getTag())) x.image().bind(img, path, build); else img.setImageResource(R.mipmap.ic_launcher); } class ViewHolder1 { ImageView img; TextView txt; } class ViewHolder2 { ImageView img; TextView txt; }}
//APPlication
package lianxi.home.application;import android.app.Application;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.umeng.socialize.PlatformConfig;import com.umeng.socialize.UMShareAPI;import org.xutils.x;import java.io.File;public class MyApp extends Application { { //QQapi和key PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); } @Override public void onCreate() { super.onCreate(); //xutils设置 x.Ext.init(this); //友盟登录 UMShareAPI.get(this); }}
//布局文件
activity_main
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" tools:context="lianxi.home.MainActivity"> <RelativeLayout android:background="#ff0000" android:layout_width="match_parent" android:layout_height="100dp"> <ImageView android:id="@+id/img_head" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginTop="25dp" android:layout_marginLeft="10dp" android:src="@mipmap/default_user_leftdrawer"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="25dp" android:orientation="horizontal" android:layout_centerHorizontal="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="今日头条"/> <ImageView android:layout_width="40dp" android:layout_height="40dp" android:src="@mipmap/refreshicon_titlebar_night"/> </LinearLayout> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:layout_marginTop="25dp" android:src="@mipmap/discover_tabbar_normal"/> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal"> <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="wrap_content" android:layout_weight="1" app:tabTextColor="#000000" app:tabSelectedTextColor="#ff0000" app:tabIndicatorHeight="0dp" app:tabMode="scrollable" android:layout_height="wrap_content"></android.support.design.widget.TabLayout> <ImageView android:layout_width="40dp" android:layout_height="40dp" android:src="@mipmap/ic_category_expand_pressed_night"/> </LinearLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content"></android.support.v4.view.ViewPager></LinearLayout>
阅读全文
0 0
- 友盟登录+xlistview+slidingview+xutils_post请求数据
- XListView请求网络数据
- XListView请求网络数据
- XListView请求网络数据
- XListView请求网络数据
- 网络数据请求XListView展示
- 网络请求+XListView展示数据
- 新XListView连接网络请求数据
- 异步请求数据展示到xlistview
- XListView在activity中HttpURLConnection请求数据
- xlistview+imageloder+数据请求+下拉刷新
- XListView请求网络数据的使用
- 使用 Xlistview 展示网络请求数据
- 轮播图+xlistview异步请求的数据+imglode获取图片数据
- XlistView 加载头部ViewPager 网络请求数据 存入数据库
- 封装请求网络数据 显示XListView 加多条目展示
- drawlayout点击请求不同数据并XListView刷新
- okhttp登录 注册 请求数据
- web前端知识体系
- 这个夏天有点热
- 消失的7
- 如何定义数组
- 进制转换
- 友盟登录+xlistview+slidingview+xutils_post请求数据
- http 漏洞解决办法
- Java进阶06 容器
- 655. Print Binary Tree
- HDU-3280---Equal Sum Partitions (暴力)
- 【Spring MVC】--介绍
- spring-http-Hessian-rpc示范
- easyUI datagrid 前端假分页
- 扩展虚拟机的系统分区