Ziad Khan
Ziad Khan

Reputation: 19

How to call an object of one activity in another?

I want to call the databasereference variable of Firebase.java activity in showFullList.java activity, how to do it? I have to show list retrieved from firebase in this activity with RecyclerView. Please help. Code is here.

Firebase.java

public class Firebase extends AppCompatActivity {

EditText EDname;
Button addB;
Spinner choose;

DatabaseReference databaseReference;

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

    databaseReference = FirebaseDatabase.getInstance().getReference("School");

    EDname= (EditText)findViewById(R.id.etname);
    addB= (Button)findViewById(R.id.buttonadd);
    choose = (Spinner)findViewById(R.id.spinnerchoose);

    addB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            addData();
        }
    });
}

private void addData()
{
    String name = EDname.getText().toString().trim();
    String section = choose.getSelectedItem().toString();

    if(!TextUtils.isEmpty(name))
    {

        String id = databaseReference.push().getKey();
        Model model = new Model(id,name,section);
        databaseReference.child(id).setValue(model);
        Toast.makeText(this,"Artist Added",Toast.LENGTH_LONG).show();


    }else
        {

            Toast.makeText(this,"Enter Name ",Toast.LENGTH_LONG).show();

        }
}

}

showFullList.java

public class ShowFullList extends AppCompatActivity {

    RecyclerView recyclerViewList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_full_list);
        recyclerViewList = (RecyclerView)findViewById(R.id.recyclerview);

    }
}

how to access the firebase instance here in an onStart() method with addEventValueListener?

Upvotes: 0

Views: 37

Answers (1)

Khemraj Sharma
Khemraj Sharma

Reputation: 58974

  1. You can initiate DatabaseReference as many times you need in different activities.
  2. You should not write dependent code.
  3. For activities which are not ensured to keep in stack. You should create new instance of variables instead of using previous activity instances.

You can achieve DatabaseReference like this.

public class ShowFullList extends AppCompatActivity {

    RecyclerView recyclerViewList;
    DatabaseReference databaseReference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_full_list);
        recyclerViewList = (RecyclerView)findViewById(R.id.recyclerview);
        databaseReference = FirebaseDatabase.getInstance().getReference("School");
       }
    }

Upvotes: 1

Related Questions