classe principale:retrofit Picasso vue de recyclage 2 en vue de grille
recyclerView = (RecyclerView)findViewById(R.id.card_recycler_view);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getApplicationContext(),2);
recyclerView.setLayoutManager(layoutManager);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.0.2/littlezebra/scripts/")
.addConverterFactory(GsonConverterFactory.create())
.build();
login service = retrofit.create(login.class);
Call<dashboard> call = service.dash();
call.enqueue(new Callback<dashboard>() {
@Override
public void onResponse(Call<dashboard> call, Response<dashboard> response) {
dashboard dashboard = response.body();
data = new ArrayList<>(Arrays.asList(dashboard. getDashboard_info()));
adapter = new DataAdapter(data,context);
recyclerView.setAdapter(adapter);
}
classe d'adaptateur:
public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> {
private ArrayList<dashboard.Dashboard_info> android;
private Context context;
public DataAdapter(ArrayList<dashboard.Dashboard_info> android,Context context) {
this.android = android;
this.context = context;
}
public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.card_row, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(DataAdapter.ViewHolder viewHolder, int i) {
viewHolder.tv_name.setText(android.get(i).getId());
Picasso.with(context).load(android.get(i)
.getWeek_image())
.resize(250,200) //to resize Image
.into(viewHolder.img_android);
viewHolder.tv_api_level.setText(android.get(i).getWeek_name());
}
@Override
public int getItemCount() {
return android.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView tv_name;
private ImageView img_android;
private TextView tv_api_level;
public ViewHolder(View view) {
super(view);
tv_name = (TextView)view.findViewById(R.id.tv_name);
img_android = (ImageView) view.findViewById(R.id.img_android);
tv_api_level = (TextView)view.findViewById(R.id.tv_api_level);
}
}
processus:
com.example.admin.myappl, PID: 5047 java.lang.IllegalArgumentException: le contexte ne doit pas être nul. au constructeur com.squareup.picasso.Picasso $. (Picasso.java:701) à com.squareup.picasso.Picasso.with (Picasso.java:662) à com.example.admin.myappl.Adapter.DataAdapter.onBindViewHolder (DataAdapter.java:37) à com.example.admin.myappl.Adapter.DataAdapter.onBindViewHolder (DataAdapter.java:18) à android.support.v7.widget.RecyclerView $ Adapter.onBindViewHolder (RecyclerView.java:6400) at android .support.v7.widget.RecyclerView $ Adapter.bindViewHolder (RecyclerView.java:6433) à android.support.v7.widget.RecyclerView $ Recycler.tryBindViewHolderByDeadline (RecyclerView.java:5377) à android.support.v7.widget.RecyclerView $ Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5640) à android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5482) à android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java : 5478) at android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:2215) at android.support.v7.widget.Grid LayoutManager.layoutChunk (GridLayoutManager.java:556) à android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1502) à android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:595) à androïde .support.v7.widget.GridLayoutManager.onLayoutChildren (GridLayoutManager.java:170) sur android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3625) sur android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView .java: 3354) à android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:3886) à android.view.View.layout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup. java: 5754) à android.widget.RelativeLayout.onLayout (RelativeLayout.java:1189) à android.view.View.layout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.support.design.widget.HeaderScrollingViewBehavior.layoutChild (HeaderScrollingViewBehavior.java:131) sur android.support.design.widget.ViewOffsetBehavior.on LayoutChild (ViewOffsetBehavior.java:42) à android.support.design.widget.AppBarLayout $ ScrollingViewBehavior.onLayoutChild (AppBarLayout.java:1389) à android.support.design.widget.CoordinatorLayout.onLayout (CoordinatorLayout.java:868) at android .view.View.layout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.support.v4.widget.DrawerLayout.onLayout (DrawerLayout.java:1192) à android. view.viewout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.widget.FrameLayout.layoutChildren (FrameLayout.java:383) à android.widget.FrameLayout.onLayout (FrameLayout.java:321) à android.view.View.layout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.widget.LinearLayout.setChildFrame (LinearLayout.java: 1982) à android.widget.LinearLayout.layoutVertical (LinearLayout.java:1826) à android.widget.LinearLayout.onLayout (LinearLayout.java:1735) à android.view.View.layout (View.java:17838) à android. Voir.Vi ewGroup.layout (ViewGroup.java:5754) à android.widget.FrameLayout.layoutChildren (FrameLayout.java:383) à android.widget.FrameLayout.onLayout (FrameLayout.java:321) à android.view.View.layout (Affichage .java: 17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.widget.LinearLayout.setChildFrame (LinearLayout.java:1982) à android.widget.LinearLayout.layoutVertical (LinearLayout.java:1826) à android.widget.LinearLayout.onLayout (LinearLayout.java:1735) à android.view.View.layout (View.java:17838) à android.view.ViewGroup.layout (ViewGroup.java:5754) à android.widget. FrameLayout.layoutChildren (FrameLayout.java:383) à android.widget.FrameLayout.onLayout (FrameLayout.java:321) à com.android.internal.policy.DecorView.onLayout (DecorView.java:751) à android.view.View .layout (View.java:17838) 08-16 17: 01: 40.928 5047-5047/com.example.admin.myappl E/AndroidRuntime: à android.view.ViewGroup.layout (ViewGroup.java:5754) à android. view.ViewRootImpl.performLayout (ViewRootImpl.java:2722)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java: 2395) à android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1473) à android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:6976)
Copie possible de [Qu'est-ce qu'une exception NullPointerException et comment la réparer?] (Https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –