Beim Kompilieren meines Codes erhalte ich diesen Fehler ("java.lang.NullPointerException: Versuch, Schnittstelle aufzurufen Methode 'boolean java.util.List.add (java.lang.Object) ") und ich kann immer noch nicht verstehen warum.java.lang.NullPointerException: Versuch, die Interface-Methode aufzurufen 'boolean java.util.List.add (java.lang.Object)
Hier ist mein Fragment:
List<DataContact> selectUsers;
AdapterFv adapter;
RecyclerView recyclerView;
Activity activity;
Bitmap bitmap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_fragment_fv, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.favourite_list);
SharedPreferences preferences = getActivity().getPreferences(0);
String Pname = preferences.getString("name1", "");
String Pnumber = preferences.getString("number1", "");
String Pimage = preferences.getString("image1", "");
byte[] encodeByte = Base64.decode(Pimage, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
Log.v("name1", Pname);
Log.v("number1", Pnumber);
Log.v("image1", Pimage);
DataContact selectUser = new DataContact();
selectUser.setName(Pname);
selectUser.setPhone(Pnumber);
selectUser.setThumb(bitmap);
selectUsers.add(selectUser);
adapter = new AdapterFv(getActivity(), "");
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
llm.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(llm);
adapter.setData(selectUsers);
recyclerView.setAdapter(adapter);
return view;
}
Adapter:
public class AdapterFv extends RecyclerView.Adapter<AdapterFv.FvHolder> {
public ArrayList<DataContact> arraylist;
public FragmentActivity activity;
public List<DataContact> selectUsers;
public AdapterFv(FragmentActivity _activity, String s) {
activity = (FragmentActivity) _activity;
this.arraylist = new ArrayList<>();
}
@Override
public AdapterFv.FvHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(viewGroup.getContext());
ViewGroup vGroupLetter = (ViewGroup) mInflater.inflate(R.layout.favourite_list, viewGroup, false);
FvHolder contact = new FvHolder(vGroupLetter, viewType);
return contact;
}
@Override
public void onBindViewHolder(AdapterFv.FvHolder holder, int position) {
holder.setData(position, selectUsers.get(position).getName(), selectUsers.get(position).getPhone(),selectUsers.get(position).getThumb());
holder.name.setText(selectUsers.get(position).getName());
holder.number.setText(selectUsers.get(position).getPhone());
try {
if (selectUsers.get(position).getThumb() != null) {
holder.imageViewicon.setImageBitmap(selectUsers.get(position).getThumb());
} else {
holder.imageViewicon.setImageResource(R.drawable.image);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public int getItemCount() {
if (selectUsers != null) {
return selectUsers.size();
} else {
return 0;
}
}
public void setData(List<DataContact> data) {
this.selectUsers = data;
}
public class FvHolder extends RecyclerView.ViewHolder {
ImageView imageViewicon, imageViewcall;
TextView name, number;
String ppname,ppnumber;
int pos;
Bitmap bitmap;
public FvHolder(View itemView, int viewType) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.namefv);
number = (TextView) itemView.findViewById(R.id.nofv);
imageViewicon = (ImageView) itemView.findViewById(R.id.picfv);
imageViewcall = (ImageView) itemView.findViewById(R.id.ccbtnfv);
}
public void setData(int position, String name, String phone, Bitmap thumb) {
this.ppname=name;
this.ppnumber=phone;
this.bitmap=thumb;
this.pos=position;
}
}
}
Logcate:
FATAL AUSNAHME: Haupt
Process: com.my.fragmentmy, PID: 9556
java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
at com.my.fragmentmy.FragmentFV.onCreateView(FragmentFV.java:125)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298)
at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5371)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
Es sieht nicht so aus, als ob Sie 'selectUsers' irgendwo initialisieren. –