【发布时间】:2020-11-22 20:28:59
【问题描述】:
我在尝试上传到 firebase 时遇到问题,我已经实例化了每个变量,所以我认为这不是问题我收到错误 java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.在空对象引用上可编辑 android.widget.EditText.getText()' 正好在这一行 String milkQuantity = milkq.getText().toString();它位于:
private void createPopupDialog(){
dialogBuilder = new AlertDialog.Builder(this);
View view = getLayoutInflater().inflate(R.layout.popup2, null);
dialogBuilder.setView(view);
dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//start posting
String milkQuantity = milkq.getText().toString();
String note = noteText.getText().toString();
if(!milkQuantity.equals("") && !noteText.equals("")){
BlogCalendar detailsInfo = new BlogCalendar(milkQuantity, note);
m
DatabaseReference.child("MmilkDetails").child(userId).setValue(detailsInfo); }其他{
}
}
});
在我的 .xml 文件中,编辑文本是:
<EditText
android:id="@+id/milkQuantity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:hint="@string/milkQty"
android:textColorHint="#5E5E5E" />
<EditText
android:id="@+id/noteText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/milkQuantity"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:hint="@string/notes_hint"
android:paddingTop="20dp"
android:textColorHint="#5E5E5E" />
如果您想知道变量是否已实例化
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calendar_);
mAuth = FirebaseAuth.getInstance();
mUser = mAuth.getCurrentUser();
mDatabase = FirebaseDatabase.getInstance();
mDatabaseReference =
FirebaseDatabase.getInstance().getReference().child("MmilkDetails");
userId = mUser.getUid();
blogCalendarList = new ArrayList<>();
recyclerView2 = (RecyclerView) findViewById(R.id.recyclerViewCalendarActivity);
recyclerView2.setHasFixedSize(true);
recyclerView2.setLayoutManager(new LinearLayoutManager(this));
mDatabaseReference.keepSynced(true);
milkq = findViewById(R.id.milkQuantity);
noteText = findViewById(R.id.noteText);
【问题讨论】:
-
milkq 在您尝试使用它时为空。
-
包含 milkQuantity 和 noteText 的 xml 文件的名称是什么?,它只是说 .xml。
-
@HaroldSer 文件名为 popup.xml
-
@JoséAndrésMolinaGarcia 我已经详细回答了为什么,异常的原因。
标签: java android firebase firebase-realtime-database