友盟登录+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>





原创粉丝点击