首页 > 解决方案 > 如何将 JSON 解析为 viewpager

问题描述

我是android工作室的初学者。我已经从服务器解析了一些 JSON 数据。我想在 viewpager 中实现这些数据。我得到了一个示例 viewpager 代码。但是当我将这些 JSON 数据应用到列表时,它显示无法解析构造函数。我的 Viewpager 代码如下。我的 JSON 获取代码

public class MainActivity extends AppCompatActivity {
// Constants
private static final String TAG = MainActivity.class.getSimpleName();

// UI Components
private VerticalViewPager mVvpMainPager;

// Other objects
private ViewPagerAdapter mPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initView();
}

private void initView() {
    mVvpMainPager = findViewById(R.id.activity_main_vvp_main_pager);

    setupViewPager();
}

private void setupViewPager() {
    mPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
    for (BeanNews news : generateSampleNewsData()) {
        mPagerAdapter.addFragment(PagerFragment.newInstance(news), "News " + news.getNewsId());
    }
    mVvpMainPager.setAdapter(mPagerAdapter);
    mVvpMainPager.setOffscreenPageLimit(generateSampleNewsData().size());
}

private ArrayList<BeanNews> generateSampleNewsData() {
    String url ="http://maranamassapp.cf/json_getdata.php";
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray("server_response");
                        for(int i = 0; i < jsonArray.length(); i++){
                            JSONObject ser =jsonArray.getJSONObject(i);
                            String creatorname =  ser.getString("head");
                            String imageUrl = ser.getString("image");
                            String cat = ser.getString("content");
                            String postdate = ser.getString("weburl");
                            String dateall = ser.getString("date");
                            BeanNews news = new BeanNews(creatorname,imageUrl,cat,postdate,dateall);
                            ArrayList<BeanNews> newsList = new ArrayList<>();
                            newsList.add(news);

                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });



    return newsList;
}

标签: androidandroid-viewpagerandroid-json

解决方案


检查这个ViewPager:_

布局管理器,允许用户在数据页面中左右翻转。您提供一个实现PagerAdapter来生成视图显示的页面。

ViewPager 最常与 结合使用Fragment这是提供和管理每个页面的生命周期的便捷方式。

现在,您需要一个RecyclerView或一个ListView内部ViewPagerxml 布局文件来显示数据。所以,你需要Fragment在里面ViewPager,一个RecyclerView|| ListView然后在里面Fragment显示数据或添加到RecyclerView适配器。

实际上无法将项目列表(在您的情况下从 json传递)ViewPager以显示在 Android 的视图中。


推荐阅读