viewpager+fragment通过HttpUrlconnection请求json数据并展示+侧滑抽屉

原创 2018年04月16日 07:43:31
implementation 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.jcodecraeer:xrecyclerview:1.3.2'


MainActivity
public class MainActivity extends AppCompatActivity {
    TabLayout mTabLayout;
    ViewPager mViewPager;
    protected ImageLoader imageLoader;
    private List<String> titles=new ArrayList<>();
    private List<Fragment> data=new ArrayList<>();
    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTabLayout=findViewById(R.id.tab_layout_id);
        mViewPager=findViewById(R.id.view_pager_id);

        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(this));

        titles.add("新品");
        titles.add("分类");
        titles.add("我的");

        data.add(new xinpin());
        data.add(new fenlei());
        data.add(new wode());

        adapter=new MyAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(adapter);
        mTabLayout.setupWithViewPager(mViewPager);
    }
    class MyAdapter extends FragmentPagerAdapter{

        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return data.get(position);
        }

        @Override
        public int getCount() {
            return data.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return titles.get(position);
        }
    }
}
xinpin

public class xinpin extends Fragment {
    ListView mListView;
    List<Bean.DataBean> data;
    private String ur="http://47.94.234.136/api/homeitemo.php";
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.xinpin1, null, false);
        getData();
        mListView=inflate.findViewById(R.id.lv);
        return inflate;
    }

    private void getData() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url=new URL(ur);
                    HttpURLConnection huc = (HttpURLConnection) url.openConnection();
                    huc.setRequestMethod("GET");
                    huc.setReadTimeout(2000);
                    huc.connect();
                    if (huc.getResponseCode()==200){
                        Gson gson=new Gson();
                        Bean bean = gson.fromJson(new InputStreamReader(huc.getInputStream(), "UTF-8"), Bean.class);
                        data = bean.getData();
                        mListView.setAdapter(new BeanAdapter(data,getActivity()));
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }


}
Bean
BeanAdapter
public class BeanAdapter extends BaseAdapter {
    private List<Bean.DataBean> dataBeans;
    Context context;

    public BeanAdapter(List<Bean.DataBean> dataBeans, Context context) {
        this.dataBeans = dataBeans;
        this.context = context;
    }

    @Override
    public int getCount() {
        return dataBeans.size();
    }

    @Override
    public Object getItem(int i) {
        return dataBeans.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.item1, null, false);
        ImageView img = inflate.findViewById(R.id.img);

        ImageLoader.getInstance().displayImage(dataBeans.get(i).getPicture(),img);
        //Glide.with(context).load(dataBeans.get(i).getPicture()).into(img);
        return inflate;
    }
}

activity——main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.muonizhou1.MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager_id"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">

    </android.support.v4.view.ViewPager>

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout_id"
        android:layout_width="match_parent"
        android:layout_height="60dp">

    </android.support.design.widget.TabLayout>
</LinearLayout>




header
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</LinearLayout>



item1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>


xinpin1
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>


    <android.support.design.widget.NavigationView
        app:menu="@menu/menu_1"
        app:headerLayout="@layout/header"
        android:layout_gravity="left"
        android:layout_width="300dp"
        android:layout_height="match_parent">

    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>







https在云服务器请求的启用

本课程将详细介绍https,云服务器,SSL证书以及相关的购买,SSL证书在云服务器端的配置,到最后成功发送https请求
  • 2017年03月25日 14:35

Android使用HttpURLConnection请求网络返回JSON数据并解析

要求:制作一个类似于今日头条的客户端,首页显示10条新闻。思路:使用Android的HttpURLConnection类请求一个URL,返回JSON数据,并使用自带的JSONArray类进行解析。方法...
  • mayuko2012
  • mayuko2012
  • 2017-06-16 19:51:33
  • 1828

使用异步任务加载网络上json数据并加载到ListView中

Android中使用网络访问来加载网上的内容,并将其解析出来加载到控件中,是一种很常见的操作。但是Android的UI线程(也就是主线程)中是不允许进行耗时操作的,因为耗时操作会阻塞主线程,影响用户体...
  • SAberDepth
  • SAberDepth
  • 2016-08-10 21:33:08
  • 595

Android通过HttpURLConnection获取JSON并进行UI更新

本例子中使用的是:HttpURLConnection+Thread+Handler的组合,在 new Thread中通过HttpURLConnection获取JSON数据后并在Handler里对UI界...
  • u011732740
  • u011732740
  • 2015-07-04 14:35:56
  • 3880

HttpURLconnection使用POST方式提交JSON数据给服务器

HttpURLconnection使用POST方式提交JSON数据给服务器最原始的味道,使用H团体票URLconnection提交JSON数据给后台服务器。此处留下标记。 将javabean对象转换成...
  • caidi1988314
  • caidi1988314
  • 2017-06-08 13:57:43
  • 13153

Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据

这个技术和xml差不过,主要是服务端代码稍微修改,客户端代码修改部分传递参数就可以完成,但在之前需要导入json所需要的jar包。 PostJson.java代码package PostPager;...
  • u013766436
  • u013766436
  • 2016-04-08 12:35:11
  • 39434

HttpURLConnection获取json数据解析

  • 2016年11月07日 22:15
  • 5KB
  • 下载

HttpURLConnection请求json数据加载到ListView上

加载网络数据到ListView上,动用了HttpURLConnection框架,简单,实用,希望这个小Demo能给你们带来帮助。...
  • Luck_YYF
  • Luck_YYF
  • 2017-07-24 19:37:19
  • 290

HttpURLConnection post json 数据接口请求

刚开始学习安卓学到post json数据到服务器这里,经过搜集资料整理了一下方法,在此做下备份   方法 /**  * post请求  *  * @param json 为Json字符串  * @pa...
  • qq_36011182
  • qq_36011182
  • 2016-11-14 15:24:43
  • 1041

HttpURLConnection 发送PUT请求,设置请求头参数 json请求体

原文链接 http请求有八中方法GET,POST,HEAD,PUT,DELETE,OPTIONS,TRACE,CONNECT,GET和POST比较常用,由于项目开发需要,开始自己研究PUT请...
  • a214919447
  • a214919447
  • 2017-01-18 15:58:18
  • 505
收藏助手
不良信息举报
您举报文章:viewpager+fragment通过HttpUrlconnection请求json数据并展示+侧滑抽屉
举报原因:
原因补充:

(最多只允许输入30个字)