java - 如何在另一个 Activity 中调用一个 Activity 的对象?

标签 java android firebase

我想在 showFullList.java Activity 中调用 Firebase.java Activity 的 databasereference 变量,该怎么做?我必须使用 RecyclerView 在此 Activity 中显示从 firebase 检索到的列表。请帮忙。代码在这里。

Firebase.java

公共(public)类 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);

    }
}

如何使用 addEventValueListeneronStart() 方法中访问 Firebase 实例?

最佳答案

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

您可以像这样实现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");
       }
    }

关于java - 如何在另一个 Activity 中调用一个 Activity 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50193116/

相关文章:

java - 如何使用 Spring 调用自定义注释?

java - 处理多个项目时将资源与 gradle 合并的问题

firebase - 无法使用 Firebase jwt token 访问 hasura

android - 从 SQLite 切换到 Firebase?

firebase - 在 Firestore 中为文档 ID 自定义对象建模的最佳方法是什么?

java - 如何使用 Jackson 库将 json 映射对象转换为对象数组

java - 是否有用于递归比较目录的匹配器?

android - 限制从 Firebase 获取数据以执行拉动刷新和加载更多功能

java - NullPointerException setOnClickListner

java - Android 的 C++ 库