android - 如何将 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;
}
解决方案
检查这个ViewPager
:_
布局管理器,允许用户在数据页面中左右翻转。您提供一个实现
PagerAdapter
来生成视图显示的页面。
ViewPager
最常与 结合使用Fragment
,这是提供和管理每个页面的生命周期的便捷方式。
现在,您需要一个RecyclerView
或一个ListView
内部ViewPager
xml 布局文件来显示数据。所以,你需要Fragment
在里面ViewPager
,一个RecyclerView
|| ListView
然后在里面Fragment
显示数据或添加到RecyclerView
适配器。
实际上无法将项目列表(在您的情况下从 json传递)ViewPager
以显示在 Android 的视图中。
推荐阅读
- firebase - 如何将我的 npm firebase 安装链接到另一个文件夹?
- amazon-s3 - 适用于实时网站的 AWS CDN,无需更改名称服务器
- powerbi - Power BI - 堆积柱形图/每月可视化计数
- parsing - 突出显示/解析另一个 PSI 元素内的 PSI 元素
- reactjs - React Select 在 onChange 参数中传递多个选项
- react-native - 在 React Naitve 中安排许多推送通知
- python - 替换数据框中字典类型列中的文本
- python - 运行时错误:CUDA 内存不足。我试过三种方法
- r - 尝试过滤每个条件的两个观察值
- r - 如何执行计算 chr 和 dbl