android - Android Studio - 我无法在实时数据库 Fire base 中使用意图
问题描述
我尝试使用先前活动的意图来查看我的数据库中的信息,但是当我尝试这样做时,我收到此错误“java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()” 所以我不知道如何继续,这就是我的代码:
package es.ua.eps.automatismos;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Space;
import android.widget.TextView;
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 org.w3c.dom.Text;
import java.util.concurrent.TimeUnit;
public class Saldo extends AppCompatActivity {
private TextView mTV;
String spLine;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_saldo);
Intent I = getIntent();
spLine = I.getStringExtra("SC");
mTV = (TextView) findViewById(R.id.saldo);
}
DatabaseReference mDBR = FirebaseDatabase.getInstance().getReference();
DatabaseReference mRC = mDBR.child(spLine);
@Override
protected void onStart() {
super.onStart();
mRC.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String Money = dataSnapshot.getValue().toString();
mTV.setText(Money);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
解决方案
您DatabaseReference mRC = mDBR.child(spLine)
在 onCreate() 外部调用,因此 spLine 尚未初始化。您可以像这样重写代码:
public class Saldo extends AppCompatActivity {
private TextView mTV;
String spLine;
DatabaseReference mDBR;
DatabaseReference mRC;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_saldo);
Intent I = getIntent();
spLine = I.getStringExtra("SC");
mDBR = FirebaseDatabase.getInstance().getReference();
mRC = mDBR.child(spLine);
mTV = (TextView) findViewById(R.id.saldo);
}
@Override
protected void onStart() {
super.onStart();
mRC.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String Money = dataSnapshot.getValue().toString();
mTV.setText(Money);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
推荐阅读
- html - 如何定位对所有浏览器做出适当响应的页脚?
- c# - 如何在 WPF 中的 RichTextbox 或 WebBrowser 控件中同时显示 HTML 和纯文本?
- c - 使用 OpenMP 进行合并排序
- typescript - 从构造函数类型获取实例类型
- sql - 如何根据组的第一个值连接两个表
- arangodb - 有没有办法读取集群的 ArangoDB 预写日志?
- java - 如何使用 Java 8 Stream/Lambda 计算整数中尾随零的数量?
- java - javac 在导入包时如何工作?
- node.js - Actions on Google - 向用户推送通知(userId 策略)
- html - 如果我没有指定 MIME 类型会发生什么