“java.lang.NullPointerException:尝试在null对象上调用虚拟方法'安卓.text.Editable 安卓.widget.EditText.getText()。”
我做了一个代码来添加剩余的几天,但它显示出我的一些代码是错误的,我是Android Studio的新手
我还上传了logcat错误,请点击这里:
Logcat
[AddRemainDaysActivity.java]
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.text.TextUtils;
import 安卓.view.View;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.ListView;
import 安卓.widget.TextView;
import 安卓.widget.Toast;
import 安卓x.annotation.NonNull;
import 安卓x.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class AddRemainDaysActivity extends AppCompatActivity {
TextView textviewAsgName;
EditText editTextRemaindDays;
Button buttonAdd;
ListView listViewRemainDays;
DatabaseReference databaseRemainDays;
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.add_remain_days);
textviewAsgName = (TextView) findViewById(R.id.textViewAsgName);
editTextRemaindDays = (EditText) findViewById(R.id.editTextRemaindDays);
buttonAdd = (Button) findViewById(R.id.buttonAdd);
listViewRemainDays = (ListView) findViewById(R.id.listViewRemainDays);
Intent intent = getIntent();
String id = intent.getStringExtra(MainActivity.ASSIGNMENT_ID);
String topic = intent.getStringExtra(MainActivity.ASSIGNMENT_TOPIC);
textviewAsgName.setText(topic);
databaseRemainDays = FirebaseDatabase.getInstance().getReference("remainDays").child(id);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveremainDays();
}
});
}
private void saveremainDays(){
String remainDaysname = editTextRemaindDays.getText().toString().trim();
if(!TextUtils.isEmpty(remainDaysname)) {
String id = databaseRemainDays.push().getKey();
remainDays RemainDays = new remainDays(id, remainDaysname);
databaseRemainDays.child(id).setValue(RemainDays);
Toast.makeText(this,"Remain days added :)", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "You must insert remaining days to proceed!", Toast.LENGTH_LONG).show();
}
}
}````
[remainDays.java]
包com。实例as3
公务舱剩余{
private String remainDaysID;
private String remainDaysname;
public remainDays() {
}
public remainDays(String remainDaysID, String remainDaysname) {
this.remainDaysID = remainDaysID;
this.remainDaysname = remainDaysname;
}
public String getRemainDaysID() {
return remainDaysID;
}
public String getRemainDaysname() {
return remainDaysname;
}
}````
这是XML文件:
[添加剩余天数xml]
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:id="@+id/Activity_add_remaindays"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:orientation="vertical"
tools:context=".AddRemainDaysActivity">
<TextView
安卓:id="@+id/textViewAsgName"
安卓:textAppearance="@style/TextAppearance.AppCompat.Large"
安卓:textAlignment="center"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:gravity="center" />
<EditText
安卓:id="@+id/editTextRemainDays"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:ems="10"
安卓:hint="Enter remaining days"
安卓:inputType="textPersonName"
安卓:layout_marginTop="20dp"/>
<Button
安卓:id="@+id/buttonAdd"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:layout_marginTop="22dp"
安卓:text="Add" />
<TextView
安卓:id="@+id/textView"
安卓:textAppearance="@style/TextAppearance.AppCompat.Large"
安卓:textAlignment="center"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:gravity="center"
安卓:text="Assignment"/>
<ListView
安卓:id="@+id/listViewRemainDays"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"/>
</LinearLayout>````
# 1 楼答案
您的
editTextRemaindDays
视图没有初始化,这就是它抛出NullPointerException的原因。当我看到您的导入时,您不是这样导入资源文件的请正确检查您正在使用正确的id访问
editTextRemaindDays
视图editTextRemaindDays
您在xml文件中提供了什么,因为您没有附加xml,因为我看不到您提供了什么id