java.lang.IllegalStateException:找不到方法saveData(view)

时间:2016-09-27 20:52:36

标签: java android

我的应用程序一直存在问题。当我启动应用程序时,它让我犯了这个错误:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.giuse.secondly, PID: 11553
              java.lang.IllegalStateException: Could not find a method saveDate(View) in the activity class com.example.giuse.secondly.NewSheet for onClick handler on view class android.widget.Button with id 'button_save'
                  at android.view.View$1.onClick(View.java:4008)
                  at android.view.View.performClick(View.java:4781)
                  at android.view.View$PerformClick.run(View.java:19874)
                  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:5254)
                  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:902)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
               Caused by: java.lang.NoSuchMethodException: saveDate [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:4001)
                  at android.view.View.performClick(View.java:4781) 
                  at android.view.View$PerformClick.run(View.java:19874) 
                  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:5254) 
                  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:902) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697) 

当我按下SAVE按钮时,在名为add_new_sheet.xml的xml文件中,它应该保存我插入的数据。

            <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/save_data"
        android:id="@+id/button_save"
        android:textAlignment="center"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:background="#444444"
        android:textColor="#FFF"
        android:onClick="saveDate"
        tools:text="Save"
            tools:ignore="ObsoleteLayoutParam" />

IDE建议我创建onClick Listener。 IDE建议我创建一个onClick Listener。

4 个答案:

答案 0 :(得分:1)

将XML saveDate属性中的onClick更改为saveData。我认为这是一个错字。

答案 1 :(得分:0)

在xml中设置onClick侦听器的Intead,尝试在代码中查找按钮的视图并调用setOnClickListener并将其放在实现中。

答案 2 :(得分:0)

你可能做错了。首先,它可能是拼写错误,检查你在班上制作的方法名称

其次,让你的方法看起来像这样

public void saveDate(View view){
//TODO: Add method functions here
}

您必须View作为方法的参数

答案 3 :(得分:0)

public void addNewSheet (View view) { HashMap<String, String> queryValuesMap = new HashMap<String, String>();

在“HashMap();”中单词“String”是灰色的。