试图将数据发送到另一个片段,但是当我按下按钮时,它关闭了app

问题描述 投票:0回答:1
我正在尝试制作一个应用程序,以控制花园的各个方面。改变温度,湿度,风以及等。现在,我从温度开始,我不明白我在做错了什么是我的代码。这是温度计碎片,应该将数据发送到房屋碎片,并确定用户输入的数量应打开热量或冷却花园

@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

java android android-studio button fatal-error
1个回答
0
投票
崩溃是由

NullPointerException

getText()
上呼叫
degrees
时引起的。发生这种情况是因为您试图使用
R.id.nmDegrees
查找
view.findViewById()
,但是在这种情况下是您的按钮
view
,而不是片段的根视图。
您可以通过移出
enter
范围来更新修复它:

degrees

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.