我正在Android Studio中构建一个名为Ping的应用程序.到目前为止,我的活动是LoginActivity ProfileActivity和Timeline.我的问题是布局中对应于时间轴活动的按钮具有无效的onClick方法.单击该按钮时,模拟器将显示"Unfortunatley,Ping已停止".我正在定义按钮和onClick方法,就像我对其功能正常工作的其他按钮一样,只是这个按钮似乎不起作用.我收到一条错误,说找不到该方法,但我已在相应的活动中编写了该方法.这是logcat:
04-30 10:40:08.727 2075-2075/com.ping_social.www.ping E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.ping_social.www.ping, PID: 2075
java.lang.IllegalStateException: Could not find a method onProfilePress(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'profileButton'
at android.view.View$1.onClick(View.java:4007)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NoSuchMethodException: onProfilePress [class android.view.View]
at java.lang.Class.getMethod(Class.java:664)
at java.lang.Class.getMethod(Class.java:643)
at android.view.View$1.onClick(View.java:4000)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at …Run Code Online (Sandbox Code Playgroud) 我是android开发的新手.我有一个疑问.我知道你可以添加一个按钮并初始化它
Button b1=(Button) findViewById(R.id.button1);
Run Code Online (Sandbox Code Playgroud)
我还可以在XML文件中给出一个名称.
android:onClick="click_event"
Run Code Online (Sandbox Code Playgroud)
我怀疑,这是最好和最有效的方式吗?就像它说使用@string资源而不是硬编码资源更好.