如何将JSON解析为viewpager

问题描述 投票:1回答:1

我是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;
}
android android-viewpager android-json
1个回答
0
投票

检查this关于ViewPager

布局管理器,允许用户左右翻页数据。您提供了PagerAdapter的实现,以生成视图显示的页面。

ViewPager最常用于Fragment,这是一种提供和管理每个页面生命周期的便捷方式。

现在,你需要在RecyclerView xml布局文件中使用ListViewViewPager来显示数据。所以,你需要Fragment里面的ViewPager,一个RecyclerView ||然后ListViewFragment内显示数据或添加到RecyclerView适配器。

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

© www.soinside.com 2019 - 2024. All rights reserved.