首页 > 解决方案 > 如何在另一个活动中调用一个活动的对象?

问题描述

我想在activity中调用activity的databasereference变量,怎么做?我必须在此活动中显示从 firebase 检索到的列表。请帮忙。代码在这里。Firebase.javashowFullList.javaRecyclerView

Firebase.java

公共类 Firebase 扩展 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);

    }
}

onStart()如何在一个方法中访问 firebase 实例addEventValueListener

标签: javaandroidfirebase

解决方案


  1. 您可以DatabaseReference在不同的活动中多次启动。
  2. 您不应该编写依赖代码。
  3. 对于无法确保保留在堆栈中的活动。您应该创建新的变量实例,而不是使用以前的活动实例。

你可以DatabaseReference这样实现。

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");
       }
    }

推荐阅读