Java 我的Android应用程序在尝试存储SQLite数据时崩溃

Java 我的Android应用程序在尝试存储SQLite数据时崩溃,java,android,sqlite,button,crash,Java,Android,Sqlite,Button,Crash,我尝试将SQLite示例代码导入到Android应用程序中,使用ListView通过SQLite保存和管理数据 在这个SQLite示例中,当我填写新联系人的文本字段并按下“保存”按钮将其保存到SQLite时,实现了一个地址簿,然后我的Android应用程序崩溃,显示不幸的是我的应用程序已终止。我相信我的问题集中在按钮保存(button1)上,尤其是行:Android:onClick=“run”,但我不理解确切的问题。为了方便起见,“run”方法是在DisplayContact.java存档中实现

我尝试将SQLite示例代码导入到Android应用程序中,使用ListView通过SQLite保存和管理数据

在这个SQLite示例中,当我填写新联系人的文本字段并按下“保存”按钮将其保存到SQLite时,实现了一个地址簿,然后我的Android应用程序崩溃,显示不幸的是我的应用程序已终止。我相信我的问题集中在按钮保存(button1)上,尤其是行:Android:onClick=“run”,但我不理解确切的问题。为了方便起见,“run”方法是在DisplayContact.java存档中实现的

my activity_display_contact.xml布局中我的按钮1的代码为:

<Button
      android:id="@+id/button1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/editTextCity"
      android:layout_alignParentBottom="true"
      android:layout_marginBottom="28dp"
      android:onClick="run"
      android:text="@string/save" />
我的Logcat的代码如下:

04-07 04:09:25.113: E/AndroidRuntime(7943): FATAL EXCEPTION: main
04-07 04:09:25.113: E/AndroidRuntime(7943): java.lang.IllegalStateException: Could not find a method run(View) in the activity class com.qualcomm.QCARSamples.ImageTargets.ImageTargets for onClick handler on view class android.widget.Button with id 'button1'
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$1.onClick(View.java:3050)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View.performClick(View.java:3534)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$PerformClick.run(View.java:14263)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Handler.handleCallback(Handler.java:605)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Looper.loop(Looper.java:137)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.app.ActivityThread.main(ActivityThread.java:4441)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.reflect.Method.invokeNative(Native Method)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.reflect.Method.invoke(Method.java:511)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at dalvik.system.NativeStart.main(Native Method)
04-07 04:09:25.113: E/AndroidRuntime(7943): Caused by: java.lang.NoSuchMethodException: run [class android.view.View]
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.Class.getConstructorOrMethod(Class.java:460)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.Class.getMethod(Class.java:915)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$1.onClick(View.java:3043)
04-07 04:09:25.113: E/AndroidRuntime(7943):     ... 11 more

这很奇怪:Java代码创建了一个名为“DisplayContact”的活动,但stacktrace说它在名为“ImageTargets”的活动中找不到名为“run”的onClick处理程序“。我会检查您的开发项目的设置方式。

您有名为ImageTargets的活动吗?有。这是我项目的主要活动。在我的ImageTargets代码中,我使用setContentView(R.layout.activity\u display\u contact);访问我的SQLite的ListView。我的SQLite在三个类中实现,分别命名为DBHelper.java、MainActivity.java(这是我插入到自己项目中的示例SQLite项目的主要活动)我有一个名为ImageTargets的活动,它是我项目的主要活动;访问我的SQLite的ListView。我的SQLite由三个类实现,分别名为DBHelper.java、MainActivity.java(这是我插入到自己项目中的示例SQLite项目的主要活动)和DisplayContact.java。你认为我必须在ImageTargets.java或其他地方插入“run”吗?是的!!!您必须在Activity类中插入run,这在您的案例中是ImageTargets。顺便说一句,在。。。如果不将DisplayContact作为活动启动,则可能永远不会调用DisplayContact类中的方法。因此,您还必须将run方法所依赖的部分移动到ImageTargets。
04-07 04:09:25.113: E/AndroidRuntime(7943): FATAL EXCEPTION: main
04-07 04:09:25.113: E/AndroidRuntime(7943): java.lang.IllegalStateException: Could not find a method run(View) in the activity class com.qualcomm.QCARSamples.ImageTargets.ImageTargets for onClick handler on view class android.widget.Button with id 'button1'
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$1.onClick(View.java:3050)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View.performClick(View.java:3534)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$PerformClick.run(View.java:14263)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Handler.handleCallback(Handler.java:605)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.os.Looper.loop(Looper.java:137)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.app.ActivityThread.main(ActivityThread.java:4441)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.reflect.Method.invokeNative(Native Method)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.reflect.Method.invoke(Method.java:511)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at dalvik.system.NativeStart.main(Native Method)
04-07 04:09:25.113: E/AndroidRuntime(7943): Caused by: java.lang.NoSuchMethodException: run [class android.view.View]
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.Class.getConstructorOrMethod(Class.java:460)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at java.lang.Class.getMethod(Class.java:915)
04-07 04:09:25.113: E/AndroidRuntime(7943):     at android.view.View$1.onClick(View.java:3043)
04-07 04:09:25.113: E/AndroidRuntime(7943):     ... 11 more