【发布时间】:2015-11-14 06:42:06
【问题描述】:
我正在使用 Firebase,我正在尝试通过我的 Android 应用显示来自 Firebase 的数据。然而,当我运行该应用程序时,它崩溃并且 logcat 说“无法弹回输入”。我在一个 java 类中模仿了 JSON 结构的属性。
这里是 MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
Firebase ref = new Firebase("https://fbandg.firebaseio.com/");
android.R.layout.simple_list_item_1, android.R.id.text1);
final TextView textbox = (TextView) findViewById(R.id.textbox);
Firebase.setAndroidContext(this);
ValueEventListener newCon = ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
fObject obj = dataSnapshot.getValue(fObject.class); //Line 49
textbox.setText(obj.toString());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
这是我创建的 Java 类:
public class fObject
{
String newCond;
public String getCondition()
{
return newCond;
}
}
产生的错误如下:
firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
com.example.elish_000.myfirstapp.MainActivity$1.onDataChange(MainActivity.java:49)
【问题讨论】:
-
你想在这里做什么 -> 覆盖 public void onDataChange(DataSnapshot dataSnapshot) { String newCond = (String) data.get("condition");文本框.setText(newCond); fObject obj = dataSnapshot.getValue(fObject.class); //第 49 行 textbox.setText(obj.toString()); }
-
为什么要设置两次 textBox 的值?
-
你得到解决方案了吗?
-
@parag No. Log cat 给出了同样的错误
-
@ParagKadam 嘿,帕拉格,它有效。只是活动显示“DataSnapShot {key = condition, value = Steamed} 而不是只显示“Steam”。