我是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;
}
检查this关于ViewPager
:
布局管理器,允许用户左右翻页数据。您提供了
PagerAdapter
的实现,以生成视图显示的页面。
ViewPager
最常用于Fragment
,这是一种提供和管理每个页面生命周期的便捷方式。
现在,你需要在RecyclerView
xml布局文件中使用ListView
或ViewPager
来显示数据。所以,你需要Fragment
里面的ViewPager
,一个RecyclerView
||然后ListView
在Fragment
内显示数据或添加到RecyclerView
适配器。
实际上无法将项目列表(从您的案例中的json)传递到ViewPager
以在Android中的视图上显示。