1

I want to show users list from database in a tab layout in a ListView but getting an error attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference. After many searches I did not get success in removing that. Can anyone help me?

Error

03-28 23:26:06.652 25767-25767/com.example.avinash.tablayoutcheck E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.avinash.tablayoutcheck, PID: 25767 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369) at android.widget.AbsListView.obtainView(AbsListView.java:2474) at android.widget.ListView.measureHeightOfChildren(ListView.java:1301) at android.widget.ListView.onMeasure(ListView.java:1203) at android.view.View.measure(View.java:19161) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6118) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1723) at android.widget.LinearLayout.measureVertical(LinearLayout.java:788) at android.widget.LinearLayout.onMeasure(LinearLayout.java:648) at android.view.View.measure(View.java:19161) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1630) at android.view.View.measure(View.java:19161) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6118) at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714) at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:91) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1361) at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:784) at android.view.View.measure(View.java:19161) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6118) at android.widget.FrameLayout.onMeasure(FrameLayout.java:223) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) at android.view.View.measure(View.java:19161)

UserlistFragment.java

  public class UserlistFragment extends Fragment {
private static final String TAG = "UserList";
ListView usersList;
private DatabaseReference mDatabaseUser;
ArrayList<String> list=new ArrayList<>();
private DatabaseReference root = FirebaseDatabase.getInstance().getReference().getRoot();

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view= inflater.inflate(R.layout.userlist_fragment,container,false);

    mDatabaseUser = FirebaseDatabase.getInstance().getReference("users");

    return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    usersList = (ListView)getActivity().findViewById(R.id.usersList);

    final ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_dropdown_item_1line,list);
    usersList.setAdapter(adapter);

    mDatabaseUser.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
           /* list.add((String) dataSnapshot.getValue(String.class));*/

            User user = dataSnapshot.getValue(User.class);

            // Check for null
            if (user == null) {
                Log.e(TAG, "User data is null!");
                return;
            }
            list.add(user.username);

            adapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}
}

userlist_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
android:layout_height="match_parent">
<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/usersList"/>
 </LinearLayout>

Database Structure

Shiv Kumar
  • 31
  • 3

0 Answers0