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更新您的答案或提出新问题。xmlonClick()
的实现方式是针对活动,而不是片段。活动应该拥有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();