通过意图发送字符串时出现空指针错误



我想将一些字符串发送到另一个应用程序,但是当我单击按钮保存时,我遇到了一个错误是空指针。

我已经设置了Toast,结果仍然是一个错误。有没有其他方法可以获取EditText中的值?

法典:

@Nullable
@Override
public View onCreateView(....) {
View view = ....;
jadwalShubuh = view.findViewById(R.id.shubuhEditText);
buttonSave = view.findViewById(R.id.saveButton);
buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Error : Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
String getShubuh = jadwalShubuh.getText().toString().trim();
Intent moveString = new Intent("com.package.my.application");
moveString.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
moveString.putExtra("getShubuh", getShubuh);
startActivity(moveString);
}
});
actionLoad();
}
private void actionLoad() {
// Call method findLocation when location != null
findCityCountryName(location);
}
private void findCityCountryName(Location location) {
// Another String to setCityName and setCountryName
callingAPI(cityName, countryName);
}
private void callingAPI(String cityName, String countryName) {
// Calling API code
call.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
if (dateJSON.getString("readable").contentEquals(getMonthReadable)) {
String setShubuh = timingsJSON.getString("Fajr");
jadwalShubuh.setText(setShubuh);
}
});
}

日志猫 :

java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.package.my.application.pengaturanWaktu.sendData(pengaturanWaktu.java:250)
at com.package.my.application.pengaturanWaktu.access$000(pengaturanWaktu.java:52)
at com.package.my.application.pengaturanWaktu$1.onClick(pengaturanWaktu.java:94)

当您设置Extra 时,尚未设置该值,因为您在初始化之后进行 API 调用。

一个快速的解决方法可能是在从 API 获取值后设置 getShubuh 字符串分配:

if (dateJSON.getString("readable").contentEquals(getMonthReadable)) {
String setShubuh = timingsJSON.getString("Fajr");
jadwalShubuh.setText(setShubuh);
getShubuh = setShubuh.trim();
}

并声明getShubuhString可供两种方法访问,就像您对jadwalShubuh所做的那样。

您的 EditText引用为空,请确保R.id.shubuhEditText中的 id 正确,并且您还必须将其转换为 EditText 作为jadwalShubuh = (EditText) view.findViewById(R.id.shubuhEditText)

最新更新