TabLayout+第三方登录+Xutils获取数据

XML:
<android.support.design.widget.TabLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    app:tabMode="scrollable"
    app:tabIndicatorHeight="1dp"
    app:tabIndicatorColor="#000000"
    app:tabTextAppearance="@style/title"
    app:tabTextColor="#0000cc"
    app:tabSelectedTextColor="#ffff00">
主界面:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tabLayout = (TabLayout) findViewById(R.id.layout);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        viewPager.setOffscreenPageLimit(7);
        login = (ImageView) findViewById(R.id.login);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, umAuthListener);
            }
        });
        viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
        tabLayout.setupWithViewPager(viewPager);
    }
    private UMAuthListener umAuthListener = new UMAuthListener() {
        @Override
        public void onStart(SHARE_MEDIA platform) {
            //授权开始的回调
        }
        @Override
        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
            Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
            ImageView login = (ImageView) findViewById(R.id.login);
            TextView text = (TextView) findViewById(R.id.name);
            DisplayImageOptions options = new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .displayer(new CircleBitmapDisplayer())
                    .build();
            String name = data.get("name");
            String tu = data.get("iconurl");
            text.setText(name);
            ImageLoader.getInstance().displayImage(tu,login,options);
        }
        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {
            Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
        }
    };
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }
}
MyAdapter:
public class MyAdapter extends FragmentPagerAdapter {
    private String[] title = {"推荐","热点","北京","视频","热点","北京","视频"};
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int position) {
     MyFragment myFragment = new MyFragment();
        Bundle bundle = new Bundle();
        bundle.putString("text",title[position]);
        myFragment.setArguments(bundle);
        return myFragment;
    }
    @Override
    public int getCount() {
        return title != null?title.length:0;
    }
    @Override
    public CharSequence getPageTitle(int position) {
        return title[position];
    }
}
MyFragment :
public class MyFragment extends Fragment implements XListView.IXListViewListene
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); View view = getView(); xlistview = (XListView) view.findViewById(R.id.xlistview); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(this); qingqiu(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.myfragment,container,false); } @Override public void onRefresh() { ++index; qingqiu(); flag=true; xlistview.stopRefresh(true); } @Override public void onLoadMore() { ++index; qingqiu(); flag=false; xlistview.stopLoadMore(); } class MAdapter extends BaseAdapter{ ImageOptions options = new ImageOptions.Builder() .setLoadingDrawableId(R.mipmap.ic_launcher) .setUseMemCache(true) .setSize(200,200) .setCircular(true) .build(); private List<Bean.ResultBean.DataBean> data; public MAdapter(List<Bean.ResultBean.DataBean> data){ this.data=data; } public void more(List<Bean.ResultBean.DataBean> datas,boolean flag){ for (Bean.ResultBean.DataBean bean:datas) { if(flag){ data.add(0,bean); }else { data.add(bean); } } } @Override public int getCount() { return data != null?data.size():0; } @Override public Object getItem(int position) { return data.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 = View.inflate(getContext(),R.layout.left,null); holder1 = new ViewHolder1(); holder1.wen1 = (TextView) convertView.findViewById(R.id.wen1); holder1.tu1 = (ImageView) convertView.findViewById(R.id.tu1); convertView.setTag(holder1); }else { holder1 = (ViewHolder1) convertView.getTag(); } holder1.wen1.setText(data.get(position).getTitle()); x.image().bind(holder1.tu1,data.get(position).getAlbums().get(0),options); } break; case 1:{ if(convertView == null){ convertView = View.inflate(getContext(),R.layout.right,null); holder2 = new ViewHolder2(); holder2.wen2 = (TextView) convertView.findViewById(R.id.wen2); holder2.tu2 = (ImageView) convertView.findViewById(R.id.tu2); convertView.setTag(holder2); }else { holder2 = (ViewHolder2) convertView.getTag(); } holder2.wen2.setText(data.get(position).getTitle()); x.image().bind(holder2.tu2,data.get(position).getAlbums().get(0),options); } break; } return convertView; } } private void qingqiu(){ String url = "http://apis.juhe.cn/cook/query.php"; RequestParams params = new RequestParams(url); params.addBodyParameter("key","1c4789006d667db3a36f20f7cbd6aa02"); params.addBodyParameter("pn",index+""); params.addBodyParameter("rn","10"); params.addBodyParameter("menu","西红柿鸡蛋"); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Gson gson = new Gson(); Bean bean = gson.fromJson(result, Bean.class); List<Bean.ResultBean.DataBean> data = bean.getResult().getData(); if(adapter == null){ adapter = new MAdapter(data); xlistview.setAdapter(adapter); }else { adapter.more(data,flag); adapter.notifyDataSetChanged(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } class ViewHolder1{ TextView wen1; ImageView tu1; } class ViewHolder2{ TextView wen2; ImageView tu2; }}
MyAplication:public class MyApplication extends Application {
    private static MyApplication myApplication;
    {
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
        Config.DEBUG = true;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        x.Ext.init(this);
        initImageLoader(getApplicationContext());
        UMShareAPI.get(this);
    }
    public static void initImageLoader(Context context) {
        File cacheDir = StorageUtils.getOwnCacheDirectory(context, "topnews/Cache");//获取到缓存的目录地址
        Log.d("cacheDir", cacheDir.getPath());
        //创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数
        ImageLoaderConfiguration config = new ImageLoaderConfiguration
                .Builder(context)
                .threadPoolSize(3)//线程池内加载的数量
                .denyCacheImageMultipleSizesInMemory()//.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation你可以通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024)
                .diskCacheSize(50 * 1024 * 1024)
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
                .tasksProcessingOrder(QueueProcessingType.LIFO)
                .diskCache(new UnlimitedDiskCache(cacheDir))
                //自定义缓存路径//.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
                .build();
        ImageLoader.getInstance().init(config);//全局初始化此配置
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android xUtils3 是一个非常方便的 Android 开发工具包,其中包含了许多方便实用的功能,例如网络请求、图片加载等。下面是使用 xUtils3 获取网络图片的示例代码: 1. 在 build.gradle 中添加 xUtils3 的依赖: ```groovy dependencies { implementation 'org.xutils:xutils:3.5.0' } ``` 2. 在 AndroidManifest.xml 中添加网络权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 3. 在代码中使用 xUtils3 获取网络图片: ```java ImageView imageView = findViewById(R.id.image_view); String imageUrl = "http://example.com/image.jpg"; x.image().bind(imageView, imageUrl, new Callback.CommonCallback<Drawable>() { @Override public void onSuccess(Drawable result) { // 图片加载成功 } @Override public void onError(Throwable ex, boolean isOnCallback) { // 图片加载失败 } @Override public void onCancelled(CancelledException cex) { // 图片加载被取消 } @Override public void onFinished() { // 图片加载完成 } }); ``` 上面的代码中,我们通过 x.image().bind() 方法来获取网络图片。第一个参数是 ImageView 对象,第二个参数是图片的 URL,第三个参数是一个 Callback,用于监听图片加载的状态。 其中,onSuccess() 方法表示图片加载成功,onError() 方法表示图片加载失败,onCancelled() 方法表示图片加载被取消,onFinished() 方法表示图片加载完成。在实际使用中,我们通常只需要实现 onSuccess() 方法即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值