@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_thermometer, container, false);
Button enter = view.findViewById(R.id.btTemp);
enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText degrees = view.findViewById(R.id.nmDegrees);
Bundle onOrOff = new Bundle();
onOrOff.putInt("df1", Integer.parseInt(degrees.getText().toString()));
getParentFragmentManager().setFragmentResult("dataFromThermometer", onOrOff);
degrees.setText("");
}
});
return view;
}
}
//this is the home fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
// Inflate the layout for this fragment
getParentFragmentManager().setFragmentResultListener("dataFromThermometer", this, new FragmentResultListener() {
@Override
public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle onOrOff) {
int temP = onOrOff.getInt("df1");
TextView temp = view.findViewById(R.id.tvTemp);
if(temP < 72){
temp.setText("Heat On!");
}
if(temP > 72) {
temp.setText("Cool Off");
}
}
});
return view;
}
}
我尝试重新同步gradle文件,但是当我单击按钮时,我的应用程序将不断关闭
这是LogCat给我的错误
2025-03-10 22:44:21.775 27891-27891/com.example.weathergarden e/androidruntime:致命例外:
过程:com.example.weathergarden,PID:27891
java.lang.nullpoInterException:尝试调用虚拟方法'android.text.edable android.widget.edtext.getText()'null对象参考
在com.example.weathergarden.thermmoterfragment $ 1.ONCLICK(温度计Fragment.java:82)
at android.view.view.performClick(view.java:8033)
在com.google.android.material.button.materialbutton.performclick(MitalyButton.Java:1131)
at android.view.view.performClickinternal(view.java:8010)
at android.view.view .- $$ nest $ mperformClickinternal(未知来源:0)
at android.view.view $ persionclick.run(view.java:31336)
在Android.os.handler.handlecallback(Handler.java:991)
at android.os.handler.dispatchmessage(Handler.java:102)
at android.os.looper.looponce(looper.java:232)
at android.os.looper.loop(looper.java:317)
at android.app.activitythread.main(activityThread.java:8787)
在java.lang.reflect.method.invoke(本机方法)上
在com.android.internal.os.os.runtimeinit $ methodAndargScaller.run(runtimeinit.java:591)
在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:871)
2025-03-10 22:44:21.793 27891-27891/com.example.weathergarden I/Process:发送信号。 PID:27891 SIG:9
NullPointerException
在
getText()
上呼叫
degrees
时引起的。发生这种情况是因为您试图使用
R.id.nmDegrees
查找
view.findViewById()
,但是在这种情况下是您的按钮
view
,而不是片段的根视图。您可以通过移出
enter
范围来更新修复它:
degrees