RecyclerView avec des Fragments
Je suis en train d'utiliser la nouvelle RecyclerView
widget à l'intérieur d'un Fragment
mais j'obtiens cette erreur:
Impossible de démarrer l'activité
ComponentInfo{com.exemple.myapplication/com.exemple.myapplication.MyActivity}:
java.lang.NullPointerException: Essayez d'appeler la méthode de l'interface
'boolean java.util.Liste.ajouter(java.lang.Objet) " sur un objet null
référence
Ce que je fais mal?
C'est mon Fragment
:
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
public class RecyclerviewFragment extends Fragment {
private RecyclerView mRecyclerView;
private RecyclerviewAdapter mRecyclerviewAdapter;
private LinearLayoutManager mLinearLayoutManager;
private List<ViewModel> viewModel;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_recyclerview, container, false);
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mRecyclerviewAdapter = new RecyclerviewAdapter(viewModel);
mLinearLayoutManager = new LinearLayoutManager(getActivity());
mRecyclerView.setAdapter(mRecyclerviewAdapter);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
}
}
Et mon Activité:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.util.List;
public class MyActivity extends Activity {
private List<ViewModel> viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
RecyclerviewFragment recyclerviewFragment = new RecyclerviewFragment();
getFragmentManager().beginTransaction().add(android.R.id.content, recyclerviewFragment).commit();
viewModel.add(new ViewModel("View"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//Handle action bar item clicks here. The action bar will
//automatically handle clicks on the Home/Up button, so long
//as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Merci!
Vous n'avez pas créé l'objet de viewModel et c'est pourquoi le message d'erreur.
Veuillez - vous venez d'avoir un bête problème de programmation Java où vous avez oublié d'initialiser une variable. Cela n'aide pas tout le monde (sauf vous) Merci de retirer cette question que les gens finissent par ici qui ont vraiment des problèmes avec RecyclerViews et Fragments! Je vous remercie pour votre coopération!
Veuillez - vous venez d'avoir un bête problème de programmation Java où vous avez oublié d'initialiser une variable. Cela n'aide pas tout le monde (sauf vous) Merci de retirer cette question que les gens finissent par ici qui ont vraiment des problèmes avec RecyclerViews et Fragments! Je vous remercie pour votre coopération!
OriginalL'auteur ivoencarnacao | 2014-07-26
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas initialiser
private List<ViewModel> viewModel
OriginalL'auteur Christopher Francisco