Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助在片段中设置代码(Android开发)_Java_Android_Android Fragments - Fatal编程技术网

Java 需要帮助在片段中设置代码(Android开发)

Java 需要帮助在片段中设置代码(Android开发),java,android,android-fragments,Java,Android,Android Fragments,显示错误: 我在代码中提到了错误位置,并给出了注释。。请帮我解决这个问题。 实际上,我已将该代码从活动类复制到片段类。但它显示出以下错误 我添加了带有片段的ActionBar选项卡,Viewpager。 为每个片段设置布局和类别 错误1是类型TempFragment的findViewById(int)方法未定义 错误2是类型Toast中的makeText(Context,CharSequence,int)方法不适用于参数(TempFragment,String,int) LOGCAT日志(单击按

显示错误: 我在代码中提到了错误位置,并给出了注释。。请帮我解决这个问题。 实际上,我已将该代码从
活动
类复制到
片段
类。但它显示出以下错误

我添加了带有片段的
ActionBar
选项卡,
Viewpager
。 为每个
片段
设置布局和类别

错误1是类型TempFragment的findViewById(int)方法未定义

错误2是类型Toast中的makeText(Context,CharSequence,int)方法不适用于参数(TempFragment,String,int)

LOGCAT日志(单击按钮时应用程序崩溃):

03-13 01:29:50.708:V/InputMethodManager(12706):onWindowFocus:android.widget.EditText{41951ea0 VFED..CL.F..ID32,32-452111#7f090001应用程序:ID/editText1}softInputMode=288 first=true flags=#1810100 03-13 01:29:50.714:V/InputMethodManager(12706):开始输入:android.widget.EditText{41951ea0 VFED..CL.F..ID32,32-452111#7f090001应用程序:ID/editText1}ic=com.android.internal.widget。EditableInputConnection@4195af78tba=android.view.inputmethod。EditorInfo@4195ae68controlFlags=#107 03-13 01:29:50.716:V/InputMethodManager(12706):开始输入:Bind result=InputBindResult{com.android.internal.view.IIInputMethodSession$Stub$Proxy@4195bbf0com.android.inputmethod.latin/.LatinIME#1325} 03-13 01:29:52.217:I/SurfaceTextureClient(12706):[STC::queueBuffer](this:0x5dec7898)fps:3.39,dur:1474.09,max:502.67,min:25.80 03-13 01:29:53.221:I/SurfaceTextureClient(12706):[STC::queueBuffer](this:0x5dec7898)fps:1.99,dur:1003.98,max:502.01,min:501.97 03-13 01:29:53.897:D/VelocityTracker(12706):VelocityTracker:int datax=10 03-13 01:29:53.897:D/VelocityTracker(12706):VelocityTracker:int m_velocity_Amploy_x=1.000000 03-13 01:29:53.897:D/VelocityTracker(12706):VelocityTracker:int-datay=10 03-13 01:29:53.897:D/VelocityTracker(12706):VelocityTracker:int m_velocity_Amploy_y=1.000000 03-13 01:29:54.226:I/SurfaceTextureClient(12706):[STC::queueBuffer](this:0x5dec7898)fps:2.98,dur:1005.72,max:502.47,min:75.56 03-13 01:29:55.228:I/SurfaceTextureClient(12706):[STC::queueBuffer](this:0x5dec7898)fps:2.00,dur:1002.21,最大值:501.60,最小值:500.60 03-13 01:29:56.259:I/SurfaceTextureClient(12706):[STC::queueBuffer](this:0x5dec7898)fps:3.88,dur:1030.73,max:484.34,min:160.27 03-13 01:29:56.422:V/提供商/设置(12706):使[系统]无效:当前404!=缓存的0 03-13 01:29:56.426:V/Provider/Settings(12706):从数据库缓存,名称=声音效果,值=0 03-13 01:29:56.428:D/AndroidRuntime(12706):关闭虚拟机 03-13 01:29:56.428:W/dalvikvm(12706):线程ID=1:线程退出时出现未捕获异常(组=0x414b79a8) 03-13 01:29:56.433:E/AndroidRuntime(12706):致命异常:主 03-13 01:29:56.433:E/AndroidRuntime(12706):java.lang.IllegalStateException:在id为“button1”的视图类android.widget.Button上的活动类com.example.converterplus.MainActivity中找不到onClick处理程序的方法onClick(视图) 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.view.view$1.onClick(view.java:3593) 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.view.view.performClick(view.java:4211)上 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.view.view$PerformClick.run(view.java:17446) 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.os.Handler.handleCallback(Handler.java:725)上 03-13 01:29:56.433:E/AndroidRuntime(12706):位于android.os.Handler.dispatchMessage(Handler.java:92) 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.os.Looper.loop(Looper.java:153)上 03-13 01:29:56.433:E/AndroidRuntime(12706):位于android.app.ActivityThread.main(ActivityThread.java:5297) 03-13 01:29:56.433:E/AndroidRuntime(12706):位于java.lang.reflect.Method.Invokenactive(本机方法) 03-13 01:29:56.433:E/AndroidRuntime(12706):位于java.lang.reflect.Method.invoke(Method.java:511) 03-13 01:29:56.433:E/AndroidRuntime(12706):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 03-13 01:29:56.433:E/AndroidRuntime(12706):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 03-13 01:29:56.433:E/AndroidRuntime(12706):在dalvik.system.NativeStart.main(本机方法) 03-13 01:29:56.433:E/AndroidRuntime(12706):由以下原因引起:java.lang.NoSuchMethodException:onClick[class android.view.view] 03-13 01:29:56.433:E/AndroidRuntime(12706):在java.lang.Class.getConstructorOrMethod(Class.java:460)中 03-13 01:29:56.433:E/AndroidRuntime(12706):在java.lang.Class.getMethod(Class.java:915)中 03-13 01:29:56.433:E/AndroidRuntime(12706):在android.view.view$1.onClick(view.java:3586) 03-13 01:29:56.433:E/AndroidRuntime(12706):。。。还有11个 03-13 01:29:58.320:I/进程(12706):发送信号。PID:12706信号:9
将代码更改为:

View rootView = inflater.inflate(R.layout.fragment_temp, container, false);
text = (EditText)rootView.findViewById(R.id.editText1);
return rootView;
RadioButton celsiusButton = (RadioButton) view.findViewById(R.id.radio0);
      RadioButton fahrenheitButton = (RadioButton) view.findViewById(R.id.radio1);
  Toast.makeText(getActivity(), "Please enter a valid number",Toast.LENGTH_LONG).show();  
当您正在膨胀布局时,您必须通过
view.findViewById()
找到该布局中的任何小部件

对于单选按钮错误:

View rootView = inflater.inflate(R.layout.fragment_temp, container, false);
text = (EditText)rootView.findViewById(R.id.editText1);
return rootView;
RadioButton celsiusButton = (RadioButton) view.findViewById(R.id.radio0);
      RadioButton fahrenheitButton = (RadioButton) view.findViewById(R.id.radio1);
  Toast.makeText(getActivity(), "Please enter a valid number",Toast.LENGTH_LONG).show();  
对于Toast错误:

View rootView = inflater.inflate(R.layout.fragment_temp, container, false);
text = (EditText)rootView.findViewById(R.id.editText1);
return rootView;
RadioButton celsiusButton = (RadioButton) view.findViewById(R.id.radio0);
      RadioButton fahrenheitButton = (RadioButton) view.findViewById(R.id.radio1);
  Toast.makeText(getActivity(), "Please enter a valid number",Toast.LENGTH_LONG).show();  

Toast.makeText()
的第一个参数是context,在您的例子中,您正在片段中调用Toast,因此必须在此处传递活动上下文。因此,
getActivity()
将用作此片段所附加的活动的上下文。

非常感谢,先生。这些修正了错误。但当我点击“计算”按钮时,应用程序仍然会强制关闭。请告诉我该怎么办。下面是fragment类的xml布局:使用logcat error更新您的答案或提出新问题。xml
onClick()
的实现方式是针对活动,而不是片段。活动应该拥有
onClick()
方法,而不是片段。最好以编程方式使用侦听器,如
按钮.setOnClickListener()RadioButton celsiusButton = (RadioButton) view.findViewById(R.id.radio0); // ***error 1
RadioButton fahrenheitButton = (RadioButton) view.findViewById(R.id.radio1); // ***error 1

Toast.makeText(this.getActivity(), "Please enter a valid number", // ***error 2
        Toast.LENGTH_LONG).show();