如何将字符串值传递给适配器类(基本适配器)android JAVA

如何将字符串值传递给适配器类(基本适配器)android JAVA,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图显示firebase数据库中的所有项目,这些项目的教师id等于当前登录教师的教师id,以便获取当前用户的教师id,这就是我所做的。活动类别: package com.example.ronanlina.attendancechecker; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.su

我试图显示firebase数据库中的所有项目,这些项目的教师id等于当前登录教师的教师id,以便获取当前用户的教师id,这就是我所做的。活动类别:

    package com.example.ronanlina.attendancechecker;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.firebase.database.ChildEventListener;
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.Query;
import com.google.firebase.database.ValueEventListener;

public class SubjectSchedules extends AppCompatActivity {

    //member vars;
    private String mEmail;
    private ListView mSchedListView;
    private subjSchedAdapter mAdapter;
    private DatabaseReference mDatabaseReference;
    private TeacherAccount ta;
    private Context context;

    public TextView idText;
    public String mTeacherId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_subject_schedules);

        mDatabaseReference = FirebaseDatabase.getInstance().getReference();

        idText = (TextView) findViewById(R.id.teachIdText);
        mSchedListView = (ListView) findViewById(R.id.schedListView);

        //getting the email of the current user
        SharedPreferences prefs = getSharedPreferences(MainActivity.ATTENDANCE_PREFS, MODE_PRIVATE);
        mEmail = prefs.getString(MainActivity.EMAIL_KEY,null);

        context = this;

    }


    @Override
    public void onStart(){
        super.onStart();

        //Retrieving the Teacher Id with the email of the current user

        DatabaseReference db = FirebaseDatabase.getInstance().getReference();
        db.child("teacheraccount"); //

        Query query = db.orderByChild("Email").equalTo(mEmail);

        query.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                //transferring datasnaphsot value to TeacherAccount class
                ta = dataSnapshot.getValue(TeacherAccount.class);

                //assign the mTeacherId w/ TeacherAccount teacher id
                mTeacherId = ta.getTeacherId().toString();
                Log.d("teacherID",mTeacherId);

            }

            @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) {

            }
        });

        // Setting the adapter

        //Displaying the teacher id value to a textview. (also for checking if datasnaphot did not return null)

        idText.setText(mTeacherId);

        //setting the adapter instance
        mAdapter = new subjSchedAdapter(this, mDatabaseReference,context);

        mSchedListView.setAdapter(mAdapter);

        mSchedListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            // @Override
            public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {

                SubjectScheds infoPass = mAdapter.getItem(position);
                String sectionTitle = infoPass.sectionname;

                Intent intent = new Intent(SubjectSchedules.this, activity_student_list.class);
                intent.putExtra("SECTION_TITLE", sectionTitle);
                startActivity(intent);
            }
        });

    }

    @Override
    public void onStop(){
        super.onStop();

        mAdapter.cleanup();
    }

    private void showErrorDialog(String message) {
        new AlertDialog.Builder(this)
                .setTitle("Oops")
                .setMessage(message)
                .setPositiveButton(android.R.string.ok, null)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
    }

}
package com.example.ronanlina.attendancechecker;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.support.v7.app.AlertDialog;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.firebase.database.ChildEventListener;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.Query;
导入com.google.firebase.database.ValueEventListener;
公共类SubjectSchedules扩展了AppCompative活动{
//成员变量;
私有字符串mEmail;
私有ListView mSchedListView;
私人附属机构;
私有数据库引用mDatabaseReference;
私人教师帐户;
私人语境;
公共文本视图idText;
公共字符串mTeacherId;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u subject\u schedules);
mDatabaseReference=FirebaseDatabase.getInstance().getReference();
idText=(TextView)findViewById(R.id.teachIdText);
mSchedListView=(ListView)findViewById(R.id.schedListView);
//正在获取当前用户的电子邮件
SharedPreferences=getSharedPreferences(MainActivity.Attention\u prefs,MODE\u PRIVATE);
mEmail=prefs.getString(MainActivity.EMAIL_KEY,null);
上下文=这个;
}
@凌驾
public void onStart(){
super.onStart();
//使用当前用户的电子邮件检索教师Id
DatabaseReference db=FirebaseDatabase.getInstance().getReference();
db.儿童(“教师账户”)//
Query Query=db.orderByChild(“Email”).equalTo(mEmail);
addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
//将datasnaphsot值传输到TeacherAccount类
ta=dataSnapshot.getValue(TeacherAccount.class);
//分配mTeacherId和教师帐户教师id
mTeacherId=ta.getTeacherId().toString();
Log.d(“教师ID”,mTeacherId);
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
//设置适配器
//向文本视图显示教师id值。(也用于检查datasnaphot是否未返回null)
设置文本(mTeacherId);
//设置适配器实例
mAdapter=new subjectSchedapter(this,mDatabaseReference,context);
mSchedListView.setAdapter(mAdapter);
mSchedListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
//@覆盖
public void onItemClick(适配器视图适配器、视图视图、整型位置、长参数){
SubjectScheds infoPass=mAdapter.getItem(位置);
字符串sectionTitle=infoPass.sectionname;
意向意向=新意向(科目表、本、活动、学生名单、班级);
意图。额外(“章节标题”,章节标题);
星触觉(意向);
}
});
}
@凌驾
公共void onStop(){
super.onStop();
mAdapter.cleanup();
}
专用对话框(字符串消息){
新建AlertDialog.Builder(此)
.setTitle(“Oops”)
.setMessage(消息)
.setPositiveButton(android.R.string.ok,null)
.setIcon(android.R.drawable.ic_对话框_警报)
.show();
}
}
我的基本适配器类:
package com.example.ronanlina.attendancechecker;
导入android.app.Activity;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.LinearLayout;
导入android.widget.TextView;
导入com.google.firebase.database.ChildEventListener;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.Query;
导入com.google.firebase.database.ValueEventListener;
导入org.w3c.dom.Text;
导入java.util.ArrayList;
公共类subschedapter扩展BaseAdapter{
私人活动能力;
私有数据库引用mDatabaseReference;
私有字符串mTeacherId;
私有ArrayList mSnapshotList;
私有查询;
//子事件侦听器
private ChildEventListener mListener=new ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
mSnapshotList.add(dataSnapshot);
notifyDataSetChanged();
}
@凌驾
ChildChanged上的公共无效(DataSnapshot da
    package com.example.ronanlina.attendancechecker;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import org.w3c.dom.Text;

import java.util.ArrayList;


public class subjSchedAdapter extends BaseAdapter{

    private Activity mActivity;
    private DatabaseReference mDatabaseReference;
    private String mTeacherId;
    private ArrayList<DataSnapshot> mSnapshotList;
    private Query query;

    // child event listener

    private ChildEventListener mListener = new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            mSnapshotList.add(dataSnapshot);
            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) {

        }
    };


    //constructor

    public subjSchedAdapter(Activity activity, DatabaseReference ref, Context context){

        mActivity = activity;
        //mTeacherId = subjteacherid;
        mDatabaseReference = ref.child("subjects");

                                                                     //getting the text displayed text from textview (teacher id)
        query = mDatabaseReference.orderByChild("teacherid").equalTo(((SubjectSchedules)context).idText.getText().toString());

        query.addChildEventListener(mListener);

        mSnapshotList = new ArrayList<>();
    }
Query query = db.orderByChild("Email").equalTo(mEmail);
Query query = db.child("teacheraccount").orderByChild("Email").equalTo(mEmail);