空对象引用上的java.lang.String java.lang.Object.toString()

时间:2019-03-21 13:09:59

标签: java android firebase-realtime-database

当我单击考勤记录并填写详细信息时,它一直崩溃 app Crashes admin_attendanceSheet.xml     ----------------------                           android:layout_width =“ wrap_content”         android:layout_height =“ wrap_content”>

    <include
        android:id="@+id/ftoolbar"
        layout="@layout/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="8dp"
        />

    <Spinner
        android:id="@+id/spinner5"
        android:layout_width="368dp"
        android:layout_height="30dp"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:entries="@array/classes"
        android:layout_margin="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        tools:layout_editor_absoluteX="8dp" />


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_margin="10dp"
    android:weightSum="4">
    <TextView
        android:fontFamily="@font/geometry"
        android:layout_marginLeft="90dp"
        android:id="@+id/mydate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Select your date"
        android:textSize="25sp"
        android:layout_marginTop="10dp"/>


</LinearLayout>
    <RelativeLayout

        android:layout_marginLeft="30dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <CalendarView
            android:id="@+id/calenderView"
            android:background="@drawable/shape"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/button12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="viewlist"
            android:text="Submit"
            android:background="@drawable/button"
            android:layout_below="@id/calenderView"
            android:layout_marginTop="40dp"
            android:layout_centerHorizontal="true"/>
    </RelativeLayout>

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.893"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="101dp" />

</LinearLayout>
</ScrollView>`

admin_attendanceSheet.java

package com.nanosh.myapplication;

import android.graphics.Color;

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CalendarView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.nanosh.myapplication.R;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class admin_attendanceSheet extends AppCompatActivity {

    ListView listView;
    CalendarView calenderView;
    TextView myDate;
    Spinner class_name;
    String classes;
    //EditText date;
    ArrayList Userlist = new ArrayList<>();
    ArrayList Studentlist = new ArrayList<>();

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    DatabaseReference dbAttendance;
    DatabaseReference dbStudent;
    String required_date;
    Toolbar mToolbar;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_attendance_sheet);
        mToolbar=(Toolbar)findViewById(R.id.ftoolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setTitle("Attendance Records");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        listView = (ListView) findViewById(R.id.list);
        class_name = (Spinner) findViewById(R.id.spinner5);

        calenderView=(CalendarView)findViewById(R.id.calenderView);
        myDate=(TextView)findViewById(R.id.mydate);

        classes = class_name.getSelectedItem().toString();
        calenderView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
                String date=(dayOfMonth+1)+"/"+month+"/"+year;
                myDate.setText(date);

            }
        });

    }

    public void display_list(final ArrayList userlist) {
        Studentlist.clear();
      required_date = myDate.getText().toString();
        dbAttendance = ref.child("attendance");
        dbAttendance.child(required_date).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                // Result will be holded Here

                Studentlist.add("SID    "+"   CGA    "+"    SPM    "+"    DS     "+"    EJ     "+ "   LSA");
                for (Object sid : userlist) {

                    //DataSnapshot dsp=dataSnapshot.child(sid.toString());
                    String CGA=dataSnapshot.child(sid.toString()).child("CGA").getValue().toString().substring(0,1);
                    String SPM=dataSnapshot.child(sid.toString()).child("SPM").getValue().toString().substring(0,1);
                    String DS=dataSnapshot.child(sid.toString()).child("DS").getValue().toString().substring(0,1);
                    String EJ=dataSnapshot.child(sid.toString()).child("EJ").getValue().toString().substring(0,1);
                    String LSA=dataSnapshot.child(sid.toString()).child("LSA").getValue().toString().substring(0,1);

                    Studentlist.add(dataSnapshot.child(sid.toString()).getKey().toString()+"    "+CGA+"     "+SPM+"     "+DS+"     "+EJ+"      "+LSA); //add result into array list
                }
                //Toast.makeText(getApplicationContext(),Studentlist.toString(), Toast.LENGTH_LONG).show();
                list(Studentlist);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getApplicationContext(), "Something went wrong", Toast.LENGTH_LONG).show();
            }

        });




    }




    public void viewlist(View v){

        Userlist.clear();
        dbStudent = ref.child("Student");
        dbStudent.orderByChild("classes").equalTo(class_name.getSelectedItem().toString()).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                // Result will be holded Here
                for (DataSnapshot dsp : dataSnapshot.getChildren()) {
                    Userlist.add(dsp.child("sid").getValue().toString()); //add result into array list
                }
                display_list(Userlist);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getApplicationContext(), "something went wrong", Toast.LENGTH_LONG).show();
            }

        });




    }
public void list(ArrayList studentlist){
    //int color = Color.argb(255, 255, 175, 64);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, studentlist);
    // Assign adapter to ListView
    listView.setAdapter(adapter);


}


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }


}

我不知道可能是什么问题 或代码格式错误?

0 个答案:

没有答案