如何阅读和使用的Andr​​oid更新的ListView SQLite数据库? [英] How to read and update SQLite database using ListView in Android?

查看:243
本文介绍了如何阅读和使用的Andr​​oid更新的ListView SQLite数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在互联网上15-20个小时一直在做研究,无法找到这个问题的答案呢。如何阅读和使用的ListView在Android的更新SQLite数据库?换句话说,你如何让ListView的项目旨在将数据保存在SQLite数据库,以及如何一旦你到其他的活动更新。我已经尝试了许多不同的方法来做到这一点,到目前为止,他们要么不工作或崩溃我的应用程序。是否有人可以帮助或至少使我正确的方向,谢谢你。

activity_main_activity_planes.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:MainActivityPlanes上下文=><的LinearLayout
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_above =@ + ID /按钮1
    机器人:layout_alignParentLeft =真
    机器人:layout_alignParentRight =真
    机器人:layout_alignParentTop =真
    机器人:方向=垂直>    < ListView控件
        机器人:ID =@ + ID / ListView1的
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent>    < /&的ListView GT;
< / LinearLayout中><按钮
    机器人:ID =@ + ID /按钮1
    风格=机器人:ATTR / buttonStyleSmall
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignParentBottom =真
    机器人:layout_centerHorizo​​ntal =真
    机器人:文字=@字符串/ ADD_BUTTON/>< / RelativeLayout的>

activity_main_activity_paper.xml

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=MainActivityPaper。><的EditText
    机器人:ID =@ + ID / editText1
    机器人:layout_width =200dip
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignParentLeft =真
    机器人:layout_alignParentRight =真
    机器人:layout_below =@ + ID / editText3
    机器人:EMS =10>
< /&的EditText GT;<按钮
    机器人:ID =@ + ID /按钮3
    风格=机器人:ATTR / buttonStyleSmall
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignBottom =@ + ID / editText3
    机器人:layout_alignParentLeft =真
    机器人:layout_alignParentTop =真
    机器人:文字=@字符串/ save_button/><按钮
    机器人:ID =@ + ID / button5
    风格=机器人:ATTR / buttonStyleSmall
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignBottom =@ + ID / editText3
    机器人:layout_alignParentRight =真
    机器人:layout_alignParentTop =真
    机器人:文字=@字符串/ update_button/><的EditText
    机器人:ID =@ + ID / editText3
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignParentTop =真
    机器人:layout_centerHorizo​​ntal =真
    机器人:EMS =10
    安卓的inputType =TEXT>
< /&的EditText GT;
< / RelativeLayout的>

MainActivityPlanes.java

 公共类MainActivityPlanes延伸活动{按钮添加;
ListView控件列表;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    的setContentView(R.layout.activity_main_activity_planes);    添加=(按钮)findViewById(R.id.button1);
    表=(ListView控件)findViewById(R.id.listView1);    List.setOnItemClickListener(新OnItemClickListener(){        公共无效onItemClick(适配器视图<>的ListView,查看ItemView控件,INT itemPosition,长的itemId)
        {
        意图launchActivity =新意图(MainActivityPlanes.this,MainActivityChampagne.class);
        startActivity(launchActivity);
    }
});    Add.setOnClickListener(新OnClickListener(){        公共无效的onClick(视图v){
            意向意图=新意图(v.getContext(),MainActivityPaper.class);
            startActivityForResult(意向,0);
        }
    });    MainActivityChampagne信息=新MainActivityChampagne(本);
    info.open();
    ArrayList的<串GT;数据= info.getData();
    info.close();
    ArrayAdapter<串GT; arrayAdapter =新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,数据);
    List.setAdapter(arrayAdapter);}}

MainActivityPaper.java

 公共类MainActivityPaper扩展活动实现OnClickListener {TextView的文本1,TITLE1;
按钮保存1,UPDATE1;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    的setContentView(R.layout.activity_main_activity_paper);    文本1 =(的TextView)findViewById(R.id.editText1);
    TITLE1 =(的TextView)findViewById(R.id.editText3);
    SAVE1 =(按钮)findViewById(R.id.button3);
    UPDATE1 =(按钮)findViewById(R.id.button5);    save1.setOnClickListener(本);
    update1.setOnClickListener(本);}@覆盖
公共无效的onClick(查看为arg0){
    // TODO自动生成方法存根    开关(arg0.getId()){
    案例R.id.button3:        字符串标题= title1.getText()的toString()。
        串音符= text1.getText()的toString()。        MainActivityChampagne进入=新MainActivityChampagne(MainActivityPaper.this);
        entry.open();
        entry.createEntry(标题,注释);
        entry.close();        打破;    案例R.id.button5:        。字符串thetitles = title1.getText()的toString();
        字符串thenotes = text1.getText()的toString()。        MainActivityChampagne起来=新MainActivityChampagne(MainActivityPaper.this);
        up.open();
        up.updateEntry(thetitles,thenotes);
        快了();        打破;    }}}

MainActivityChampagne.java

 公共类MainActivityChampagne {公共静态最后弦乐KEY_NAME =称号;
公共静态最后弦乐KEY_NOTES =最后呼叫;私有静态最后弦乐DATABASE_NAME =Champagnedb;
私有静态最后弦乐DATABASE_TABLE =champagneTable;
私有静态最终诠释DATABASE_VERSION = 1;私人DbHelper ourHelper;
私人最终上下文ourContext;
私人SQLiteDatabase ourDatabase;私有静态类DbHelper扩展SQLiteOpenHelper {    公共DbHelper(上下文的背景下){
        超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
        // TODO自动生成构造函数存根    }    @覆盖
    公共无效的onCreate(SQLiteDatabase DB){
        // TODO自动生成方法存根\\
        db.execSQL(CREATE TABLE+ DATABASE_TABLE +(+
                KEY_NAME +TEXT NOT NULL);
        );    }    @覆盖
    公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
        // TODO自动生成方法存根
        db.execSQL(DROP TABLE如果不存在+ DATABASE_TABLE);
        的onCreate(DB);    }}公共MainActivityChampagne(上下文C){
    ourContext = C;}公共MainActivityChampagne的open(){
    ourHelper =新DbHelper(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    返回此;}公共无效的close(){
    ourHelper.close();}众长createEntry(标题字符串,字符串注释){
    // TODO自动生成方法存根
    ContentValues​​ CV =新ContentValues​​();
    cv.put(KEY_NAME,职称);
    返回ourDatabase.insert(DATABASE_TABLE,空,CV);}公众的ArrayList<串GT;的getData(){
    // TODO自动生成方法存根
    的String [] =列新的String [] {} KEY_NAME;
    光标C = ourDatabase.query(DATABASE_TABLE,列,NULL,NULL,NULL,NULL,NULL);
    字符串结果=;
    INT的iNotes = c.getColumnIndex(KEY_NAME);
    ArrayList的<串GT; string_array =新的ArrayList<串GT;();
    为(c.moveToFirst();!c.isAfterLast(); c.moveToNext())
    {
    结果= c.getString(iNotes的)+\\ n;
    string_array.add(结果);
    }
           返回string_array;}公共无效updateEntry(字符串thetitles,字符串thenotes){
    // TODO自动生成方法存根
    ContentValues​​ cvUpdate =新ContentValues​​();
    cvUpdate.put(KEY_NAME,thetitles);
    cvUpdate.put(KEY_NOTES,thenotes);
    ourDatabase.update(DATABASE_TABLE,cvUpdate,KEY_NAME +=+ thetitles + KEY_NOTES +=+ thenotes,NULL);}}

LogCat中

 三月六日至21日:42:16.782:E /跟踪(3639):错误打开跟踪文件:没有这样的文件或目录(2)
3月6日至21日:42:18.622:D / dalvikvm(3639):GC_FOR_ALLOC释放46K,7%的游离2545K / 2712K,暂停440ms,444ms总
3月6日至21日:42:18.715:I / dalvikvm堆(3639):成长堆(frag的情况下),以3.673MB为1127536字节分配
3月6日至21日:42:19.022:D / dalvikvm(3639):GC_FOR_ALLOC释放1K,5%的游离3645K / 3816K,暂停308ms,308ms总
3月6日至21日:42:19.312:D / dalvikvm(3639):GC_CONCURRENT释放< 1K,5%的游离3651K / 3816K,暂停18毫秒+ 15毫秒,总290ms
3月6日至21日:42:20.582:I /编舞(3639):65跳过帧!该应用程序可能会做它的主线程的工作太多了。
3月6日至21日:42:20.752:D / gralloc_goldfish(3639):无仿真模拟GPU检测。
3月6日至21日:42:21.352:I /编舞(3639):33跳过帧!该应用程序可能会做它的主线程的工作太多了。
3月6日至21日:42:24.841:D / dalvikvm(3639):GC_FOR_ALLOC释放25K,4%免​​费3984K / 4132K,暂停67ms,总95MS
3月6日至21日:42:24.941:D / dalvikvm(3639):GC_FOR_ALLOC释放10K,4%免​​费4238K / 4400K,暂停61ms,总67ms
3月6日至21日:42:25.081:D / dalvikvm(3639):GC_CONCURRENT释放< 1K,4%免​​费4766K / 4936K,暂停74ms + 6ms的,总124ms
3月6日至21日:42:25.094:D / dalvikvm(3639):WAIT_FOR_CONCURRENT_GC受阻37ms
3月6日至21日:42:25.193:D / dalvikvm(3639):GC_FOR_ALLOC释放0K,4%免​​费5294K / 5472K,暂停57ms,总57ms
3月6日至21日:42:25.293:D / dalvikvm(3639):GC_FOR_ALLOC释放< 1K,4%免​​费6086K / 6276K,暂停57ms,总57ms
3月6日至21日:42:25.453:I /编舞(3639):77跳过帧!该应用程序可能会做它的主线程的工作太多了。
3月6日至21日:42:32.381:D / AndroidRuntime(3639):关闭VM
3月6日至21日:42:32.401:W / dalvikvm(3639):主题ID = 1:螺纹未捕获的异常退出(组= 0x40a71930)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):致命异常:主要
3月6日至21日:42:32.461:E / AndroidRuntime(3639):android.content.ActivityNotFoundException:无法找到明确的活动类{android.application.project.planes / android.application.project.planes.MainActivityChampagne};有你宣布你的Andr​​oidManifest.xml这个活动?
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Activity.startActivityForResult(Activity.java:3370)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Activity.startActivityForResult(Activity.java:3331)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Activity.startActivity(Activity.java:3566)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.Activity.startActivity(Activity.java:3534)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.application.project.planes.MainActivityPlanes $ 1.onItemClick(MainActivityPlanes.java:36)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.widget.AdapterView.performItemClick(AdapterView.java:298)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.widget.AbsListView.performItemClick(AbsListView.java:1100)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.widget.AbsListView $ PerformClick.run(AbsListView.java:2749)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.widget.AbsListView $ 1.run(AbsListView.java:3423)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.os.Handler.handleCallback(Handler.java:725)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.os.Handler.dispatchMessage(Handler.java:92)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.os.Looper.loop(Looper.java:137)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在android.app.ActivityThread.main(ActivityThread.java:5041)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在java.lang.reflect.Method.invokeNative(本机方法)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在java.lang.reflect.Method.invoke(Method.java:511)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
3月6日至21日:42:32.461:E / AndroidRuntime(3639):在dalvik.system.NativeStart.main(本机方法)
3月6日至21日:42:35.471:I /流程(3639):发送信号。 PID:3639 SIG:9
3月6日至21日:43:13.141:D / dalvikvm(3658):GC_FOR_ALLOC释放49K,7%的游离2545K / 2716K,暂停229ms,232ms总
3月6日至21日:43:13.161:I / dalvikvm堆(3658):成长堆(frag的情况下),以3.673MB为1127536字节分配
3月6日至21日:43:13.241:D / dalvikvm(3658):GC_FOR_ALLOC释放1K,5%的游离3645K / 3820K,暂停74ms,总74ms
3月6日至21日:43:13.391:D / dalvikvm(3658):GC_CONCURRENT释放< 1K,5%的游离3645K / 3820K,暂停10毫秒+ 4ms的,总152ms
3月6日至21日:43:14.711:I /编舞(3658):78跳过帧!该应用程序可能会做它的主线程的工作太多了。
3月6日至21日:43:14.852:D / gralloc_goldfish(3658):无仿真模拟GPU检测。
3月6日至21日:43:19.123:D / AndroidRuntime(3658):关闭VM
3月6日至21日:43:19.131:W / dalvikvm(3658):主题ID = 1:螺纹未捕获的异常退出(组= 0x40a71930)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):致命异常:主要
3月6日至21日:43:19.181:E / AndroidRuntime(3658):android.content.ActivityNotFoundException:无法找到明确的活动类{android.application.project.planes / android.application.project.planes.MainActivityChampagne};有你宣布你的Andr​​oidManifest.xml这个活动?
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Activity.startActivityForResult(Activity.java:3370)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Activity.startActivityForResult(Activity.java:3331)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Activity.startActivity(Activity.java:3566)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.Activity.startActivity(Activity.java:3534)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.application.project.planes.MainActivityPlanes $ 1.onItemClick(MainActivityPlanes.java:36)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.widget.AdapterView.performItemClick(AdapterView.java:298)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.widget.AbsListView.performItemClick(AbsListView.java:1100)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.widget.AbsListView $ PerformClick.run(AbsListView.java:2749)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.widget.AbsListView $ 1.run(AbsListView.java:3423)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.os.Handler.handleCallback(Handler.java:725)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.os.Handler.dispatchMessage(Handler.java:92)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.os.Looper.loop(Looper.java:137)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在android.app.ActivityThread.main(ActivityThread.java:5041)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在java.lang.reflect.Method.invokeNative(本机方法)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在java.lang.reflect.Method.invoke(Method.java:511)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
3月6日至21日:43:19.181:E / AndroidRuntime(3658):在dalvik.system.NativeStart.main(本机方法)
3月6日至21日:43:24.262:I /流程(3658):发送信号。 PID:3658 SIG:9

ProjectPlanes清单

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
包=android.application.project.planes
安卓版code =1
机器人:=的versionName1.0><用途-SDK
    安卓的minSdkVersion =14
    机器人:targetSdkVersion =17/><应用
    机器人:allowBackup =真
    机器人:图标=@绘制/ ic_launcher
    机器人:标签=@字符串/ APP_NAME
    机器人:主题=@风格/ AppTheme>
    <活动
        机器人:名字=android.application.project.planes.MainActivityPlanes
        机器人:标签=@字符串/ APP_NAME>
        &所述;意图滤光器>
            <作用机器人:名字=android.intent.action.MAIN/>            <类机器人:名字=android.intent.category.LAUNCHER/>
        &所述; /意图滤光器>
    < /活性GT;
    <活动
        机器人:名字=android.application.project.planes.MainActivityPaper
        机器人:标签=@字符串/ APP_NAME>
    < /活性GT;
< /用途>< /清单>

更新LogCat中

  5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.View.measure(View.java:15518)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.View.measure(View.java:15518)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.View.measure(View.java:15518)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2176)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.View.measure(View.java:15518)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4351)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:749)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.Choreographer.doCallbacks(Choreographer.java:562)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.Choreographer.doFrame(Choreographer.java:532)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:735)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.os.Handler.handleCallback(Handler.java:725)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.os.Handler.dispatchMessage(Handler.java:92)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.os.Looper.loop(Looper.java:137)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在android.app.ActivityThread.main(ActivityThread.java:5041)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在java.lang.reflect.Method.invokeNative(本机方法)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在java.lang.reflect.Method.invoke(Method.java:511)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
5月6日至21日:12:14.752:E / AndroidRuntime(4313):在dalvik.system.NativeStart.main(本机方法)
5月6日至21日:12:19.072:I /流程(4313):发送信号。 PID:4313 SIG:9


解决方案

下面是经过编辑的工作code

MainActivityChampagne.java

 包android.application.project.planes;进口的java.util.ArrayList;进口android.content.ContentValues​​;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;公共类MainActivityChampagne {    公共静态最后弦乐KEY_NAME =称号;
    公共静态最后弦乐KEY_NOTES =最后呼叫;    私有静态最后弦乐DATABASE_NAME =Champagnedb;
    私有静态最后弦乐DATABASE_TABLE =champagneTable;
    私有静态最终诠释DATABASE_VERSION = 1;    私人DbHelper ourHelper;
    私人最终上下文ourContext;
    私人SQLiteDatabase ourDatabase;    私有静态类DbHelper扩展SQLiteOpenHelper {        公共DbHelper(上下文的背景下){
            超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
            // TODO自动生成构造函数存根        }        @覆盖
        公共无效的onCreate(SQLiteDatabase DB){
            // TODO自动生成方法存根\\
            db.execSQL(CREATE TABLE+ DATABASE_TABLE +(+ KEY_NAME
                    +TEXT NOT NULL););        }        @覆盖
        公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
            // TODO自动生成方法存根
            db.execSQL(DROP TABLE如果不存在+ DATABASE_TABLE);
            的onCreate(DB);        }    }    公共MainActivityChampagne(上下文C){
        ourContext = C;    }    公共MainActivityChampagne的open(){
        ourHelper =新DbHelper(ourContext);
        ourDatabase = ourHelper.getWritableDatabase();
        返回此;    }    公共无效的close(){
        ourHelper.close();    }    众长createEntry(标题字符串,字符串注释){
        // TODO自动生成方法存根
        ContentValues​​ CV =新ContentValues​​();
        cv.put(KEY_NAME,职称);
        返回ourDatabase.insert(DATABASE_TABLE,空,CV);    }    公众的ArrayList<串GT;的getData(){
        // TODO自动生成方法存根
        的String [] =列新的String [] {} KEY_NAME;
        光标C = ourDatabase.query(DATABASE_TABLE,列,NULL,NULL,NULL,
                NULL,NULL);
        字符串结果=;
        INT的iNotes = c.getColumnIndex(KEY_NAME);
        ArrayList的<串GT; string_array =新的ArrayList<串GT;();
        为(c.moveToFirst();!c.isAfterLast(); c.moveToNext()){
            结果= c.getString(iNotes的)+\\ n;
            string_array.add(结果);
        }
        返回string_array;    }    公共无效updateEntry(字符串thetitles,字符串thenotes){
        // TODO自动生成方法存根
        ContentValues​​ cvUpdate =新ContentValues​​();
        cvUpdate.put(KEY_NAME,thetitles);
        / * cvUpdate.put(KEY_NOTES,thenotes); * /
        / *
         * ourDatabase.update(DATABASE_TABLE,cvUpdate,KEY_NAME +=+
         * thetitles + KEY_NOTES +=+ thenotes,NULL);
         * /
        ourDatabase.update(DATABASE_TABLE,cvUpdate,KEY_NAME +='
                + thetitles +',NULL);    }}

MainActivityPaper.java

 包android.application.project.planes;进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.Window;
进口android.widget.Button;
进口android.widget.TextView;公共类MainActivityPaper扩展活动实现OnClickListener {    TextView的文本1,TITLE1;
    按钮保存1,UPDATE1;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        的setContentView(R.layout.activity_main_activity_paper);        文本1 =(的TextView)findViewById(R.id.editText1);
        TITLE1 =(的TextView)findViewById(R.id.editText3);
        SAVE1 =(按钮)findViewById(R.id.button3);
        UPDATE1 =(按钮)findViewById(R.id.button5);        save1.setOnClickListener(本);
        update1.setOnClickListener(本);    }    @覆盖
    公共无效的onClick(查看为arg0){
        // TODO自动生成方法存根        开关(arg0.getId()){
        案例R.id.button3:            字符串标题= title1.getText()的toString()。
            串音符= text1.getText()的toString()。            MainActivityChampagne进入=新MainActivityChampagne(
                    MainActivityPaper.this);
            entry.open();
            entry.createEntry(标题,注释);
            entry.close();            打破;        案例R.id.button5:            。字符串thetitles = title1.getText()的toString();
            字符串thenotes = text1.getText()的toString()。            MainActivityChampagne起来=新MainActivityChampagne(
                    MainActivityPaper.this);
            up.open();
            up.updateEntry(thetitles,thenotes);
            快了();            打破;        }    }}

MainActivityPlanes.java

 包android.application.project.planes;进口的java.util.ArrayList;进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.Window;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.Button;
进口android.widget.ListView;公共类MainActivityPlanes延伸活动{    按钮添加;
    ListView控件列表;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        的setContentView(R.layout.activity_main_activity_planes);        添加=(按钮)findViewById(R.id.button1);
        表=(ListView控件)findViewById(R.id.listView1);        List.setOnItemClickListener(新OnItemClickListener(){            @覆盖
            公共无效onItemClick(适配器视图<>为arg0,ARG1观,诠释ARG2,
                    长ARG3){
                // TODO自动生成方法存根
                意图launchActivity =新意图(MainActivityPlanes.this,
                        MainActivityPaper.class);
                startActivity(launchActivity);
            }
        });        Add.setOnClickListener(新OnClickListener(){            公共无效的onClick(视图v){
                意向意图=新意图(getApplicationContext()
                        MainActivityPaper.class);
                startActivityForResult(意向,0);
            }
        });        MainActivityChampagne信息=新MainActivityChampagne(本);
        info.open();
        ArrayList的<串GT;数据= info.getData();
        info.close();
        ArrayAdapter<串GT; arrayAdapter =新ArrayAdapter<串GT;(这一点,
                android.R.layout.simple_list_item_1,数据);
        List.setAdapter(arrayAdapter);    }}

下面有什么不对您的code是SQLite数据库查询。您创建只在该表行,并试图同时更新两个值进行比较。你只需选中您code,你将能够根据该修改。
希望这会有所帮助。

添加以下code键使您的列表视图上单击工作

添加以下code在MainActivityPlanes.java

  List.setOnItemClickListener(新OnItemClickListener(){        @覆盖
        公共无效onItemClick(适配器视图<>为arg0,ARG1观,诠释ARG2,
                长ARG3){
            字符串STR1 = List.getItemAtPosition(ARG2)的ToString();
            的System.out.println(STR1);
            捆绑桶=新包();
            bucket.putString(my_key,STR1);
            // TODO自动生成方法存根
            意图launchActivity =新意图(MainActivityPlanes.this,
                    MainActivityPaper.class);
            launchActivity.putExtras(桶);
            startActivity(launchActivity);
        }
    });

添加以下code在MainActivityPaper.java

  @覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    的setContentView(R.layout.activity_main_activity_paper);
    文本1 =(的TextView)findViewById(R.id.editText1);    字符串s = NULL;
    尝试{
        束B = this.getIntent()getExtras()。
        S = b.getString(my_key);        }赶上(例外五){
            S =;
            e.printStackTrace();
        }最后{
            text1.setText(s.toString());
        }
    TITLE1 =(的TextView)findViewById(R.id.editText3);
    SAVE1 =(按钮)findViewById(R.id.button3);
    UPDATE1 =(按钮)findViewById(R.id.button5);    save1.setOnClickListener(本);
    update1.setOnClickListener(本);}

希望这将解决您的问题。

I've been doing research in the internet for 15-20 hours and can't find the answer to this question yet "How to read and update SQLite database using ListView in Android?" in other words how do you make the ListView Items Intent to the saved data in the SQLite Database and how to update them once you get to the other activity. I have tried many different ways to do this and so far they either don't work or crash my application. Can someone please help or at least lead me to the right direction, thank you.

activity_main_activity_planes.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivityPlanes" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    </ListView>
</LinearLayout>

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="@string/add_button" />

</RelativeLayout>

activity_main_activity_paper.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivityPaper" >

<EditText
    android:id="@+id/editText1"
    android:layout_width="200dip"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/editText3"
    android:ems="10" >
</EditText>

<Button
    android:id="@+id/button3"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/editText3"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/save_button" />

<Button
    android:id="@+id/button5"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/editText3"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="@string/update_button" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:ems="10"
    android:inputType="text" >
</EditText>
</RelativeLayout>

MainActivityPlanes.java

public class MainActivityPlanes extends Activity {

Button Add;
ListView List;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_planes);

    Add = (Button) findViewById(R.id.button1);
    List = (ListView) findViewById(R.id.listView1);

    List.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> listView, View itemView, int itemPosition, long itemId)
        {           
        Intent launchActivity = new Intent(MainActivityPlanes.this, MainActivityChampagne.class);
        startActivity(launchActivity);
    }
});

    Add.setOnClickListener(new OnClickListener () {

        public void onClick (View v) {
            Intent intent = new Intent (v.getContext(), MainActivityPaper.class);
            startActivityForResult(intent, 0);
        }
    });

    MainActivityChampagne info = new MainActivityChampagne(this);       
    info.open();        
    ArrayList<String> data = info.getData();
    info.close();
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
    List.setAdapter(arrayAdapter);

}

}

MainActivityPaper.java

public class MainActivityPaper extends Activity implements OnClickListener {

TextView text1, title1;
Button save1, update1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_paper);

    text1 = (TextView) findViewById(R.id.editText1);
    title1 = (TextView) findViewById(R.id.editText3);
    save1 = (Button) findViewById(R.id.button3);
    update1 = (Button) findViewById(R.id.button5);

    save1.setOnClickListener(this);
    update1.setOnClickListener(this);

}

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub

    switch (arg0.getId()) {
    case R.id.button3:

        String titles = title1.getText().toString();
        String notes = text1.getText().toString();

        MainActivityChampagne entry = new MainActivityChampagne(MainActivityPaper.this);
        entry.open();
        entry.createEntry(titles, notes);
        entry.close();

        break;

    case R.id.button5:

        String thetitles = title1.getText().toString();
        String thenotes = text1.getText().toString();

        MainActivityChampagne up = new MainActivityChampagne(MainActivityPaper.this);
        up.open();
        up.updateEntry(thetitles, thenotes);
        up.close();

        break;

    }

}

}

MainActivityChampagne.java

public class MainActivityChampagne {

public static final String KEY_NAME = "title";
public static final String KEY_NOTES = "lastcall";

private static final String DATABASE_NAME = "Champagnedb";
private static final String DATABASE_TABLE = "champagneTable";
private static final int DATABASE_VERSION = 1;

private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;

private static class DbHelper extends SQLiteOpenHelper{

    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub\
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                KEY_NAME + " TEXT NOT NULL);"
        );

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXIST " + DATABASE_TABLE);
        onCreate(db);

    }

}

public MainActivityChampagne(Context c){
    ourContext = c;

}

public MainActivityChampagne open(){
    ourHelper = new DbHelper(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    return this;

}

public void close(){
    ourHelper.close();

}

public long createEntry(String titles, String notes) {
    // TODO Auto-generated method stub
    ContentValues cv = new ContentValues();
    cv.put(KEY_NAME, titles);
    return ourDatabase.insert(DATABASE_TABLE, null, cv);

}

public ArrayList<String> getData() {
    //TODO Auto-generated method stub
    String[] columns = new String[] { KEY_NAME };
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";
    int iNotes = c.getColumnIndex(KEY_NAME);
    ArrayList<String> string_array = new ArrayList<String>();
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
    {
    result = c.getString (iNotes) + "\n";
    string_array.add(result);
    }
           return string_array;

}

public void updateEntry(String thetitles, String thenotes) {
    // TODO Auto-generated method stub
    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_NAME, thetitles);
    cvUpdate.put(KEY_NOTES, thenotes);
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + thetitles + KEY_NOTES + "=" + thenotes, null);

}

}

LogCat

06-21 03:42:16.782: E/Trace(3639): error opening trace file: No such file or directory (2)
06-21 03:42:18.622: D/dalvikvm(3639): GC_FOR_ALLOC freed 46K, 7% free 2545K/2712K, paused 440ms, total 444ms
06-21 03:42:18.715: I/dalvikvm-heap(3639): Grow heap (frag case) to 3.673MB for 1127536-byte allocation
06-21 03:42:19.022: D/dalvikvm(3639): GC_FOR_ALLOC freed 1K, 5% free 3645K/3816K, paused 308ms, total 308ms
06-21 03:42:19.312: D/dalvikvm(3639): GC_CONCURRENT freed <1K, 5% free 3651K/3816K, paused 18ms+15ms, total 290ms
06-21 03:42:20.582: I/Choreographer(3639): Skipped 65 frames!  The application may be doing too much work on its main thread.
06-21 03:42:20.752: D/gralloc_goldfish(3639): Emulator without GPU emulation detected.
06-21 03:42:21.352: I/Choreographer(3639): Skipped 33 frames!  The application may be doing too much work on its main thread.
06-21 03:42:24.841: D/dalvikvm(3639): GC_FOR_ALLOC freed 25K, 4% free 3984K/4132K, paused 67ms, total 95ms
06-21 03:42:24.941: D/dalvikvm(3639): GC_FOR_ALLOC freed 10K, 4% free 4238K/4400K, paused 61ms, total 67ms
06-21 03:42:25.081: D/dalvikvm(3639): GC_CONCURRENT freed <1K, 4% free 4766K/4936K, paused 74ms+6ms, total 124ms
06-21 03:42:25.094: D/dalvikvm(3639): WAIT_FOR_CONCURRENT_GC blocked 37ms
06-21 03:42:25.193: D/dalvikvm(3639): GC_FOR_ALLOC freed 0K, 4% free 5294K/5472K, paused 57ms, total 57ms
06-21 03:42:25.293: D/dalvikvm(3639): GC_FOR_ALLOC freed <1K, 4% free 6086K/6276K, paused 57ms, total 57ms
06-21 03:42:25.453: I/Choreographer(3639): Skipped 77 frames!  The application may be doing too much work on its main thread.
06-21 03:42:32.381: D/AndroidRuntime(3639): Shutting down VM
06-21 03:42:32.401: W/dalvikvm(3639): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-21 03:42:32.461: E/AndroidRuntime(3639): FATAL EXCEPTION: main
06-21 03:42:32.461: E/AndroidRuntime(3639): android.content.ActivityNotFoundException: Unable to find explicit activity class {android.application.project.planes/android.application.project.planes.MainActivityChampagne}; have you declared this activity in your AndroidManifest.xml?
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Activity.startActivityForResult(Activity.java:3370)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Activity.startActivityForResult(Activity.java:3331)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Activity.startActivity(Activity.java:3566)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.Activity.startActivity(Activity.java:3534)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.application.project.planes.MainActivityPlanes$1.onItemClick(MainActivityPlanes.java:36)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.widget.AdapterView.performItemClick(AdapterView.java:298)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.widget.AbsListView$1.run(AbsListView.java:3423)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.os.Handler.handleCallback(Handler.java:725)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.os.Looper.loop(Looper.java:137)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at android.app.ActivityThread.main(ActivityThread.java:5041)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at java.lang.reflect.Method.invoke(Method.java:511)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-21 03:42:32.461: E/AndroidRuntime(3639):     at dalvik.system.NativeStart.main(Native Method)
06-21 03:42:35.471: I/Process(3639): Sending signal. PID: 3639 SIG: 9
06-21 03:43:13.141: D/dalvikvm(3658): GC_FOR_ALLOC freed 49K, 7% free 2545K/2716K, paused 229ms, total 232ms
06-21 03:43:13.161: I/dalvikvm-heap(3658): Grow heap (frag case) to 3.673MB for 1127536-byte allocation
06-21 03:43:13.241: D/dalvikvm(3658): GC_FOR_ALLOC freed 1K, 5% free 3645K/3820K, paused 74ms, total 74ms
06-21 03:43:13.391: D/dalvikvm(3658): GC_CONCURRENT freed <1K, 5% free 3645K/3820K, paused 10ms+4ms, total 152ms
06-21 03:43:14.711: I/Choreographer(3658): Skipped 78 frames!  The application may be doing too much work on its main thread.
06-21 03:43:14.852: D/gralloc_goldfish(3658): Emulator without GPU emulation detected.
06-21 03:43:19.123: D/AndroidRuntime(3658): Shutting down VM
06-21 03:43:19.131: W/dalvikvm(3658): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-21 03:43:19.181: E/AndroidRuntime(3658): FATAL EXCEPTION: main
06-21 03:43:19.181: E/AndroidRuntime(3658): android.content.ActivityNotFoundException: Unable to find explicit activity class {android.application.project.planes/android.application.project.planes.MainActivityChampagne}; have you declared this activity in your AndroidManifest.xml?
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Activity.startActivityForResult(Activity.java:3370)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Activity.startActivityForResult(Activity.java:3331)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Activity.startActivity(Activity.java:3566)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.Activity.startActivity(Activity.java:3534)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.application.project.planes.MainActivityPlanes$1.onItemClick(MainActivityPlanes.java:36)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.widget.AdapterView.performItemClick(AdapterView.java:298)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.widget.AbsListView$1.run(AbsListView.java:3423)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.os.Handler.handleCallback(Handler.java:725)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.os.Looper.loop(Looper.java:137)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at android.app.ActivityThread.main(ActivityThread.java:5041)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at java.lang.reflect.Method.invoke(Method.java:511)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-21 03:43:19.181: E/AndroidRuntime(3658):     at dalvik.system.NativeStart.main(Native Method)
06-21 03:43:24.262: I/Process(3658): Sending signal. PID: 3658 SIG: 9

ProjectPlanes Manifest

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.application.project.planes"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="android.application.project.planes.MainActivityPlanes"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="android.application.project.planes.MainActivityPaper"
        android:label="@string/app_name" >
    </activity>
</application>

</manifest>

Updated LogCat

06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.View.measure(View.java:15518)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.View.measure(View.java:15518)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.View.measure(View.java:15518)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.View.measure(View.java:15518)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.Choreographer.doFrame(Choreographer.java:532)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.os.Handler.handleCallback(Handler.java:725)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.os.Looper.loop(Looper.java:137)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at android.app.ActivityThread.main(ActivityThread.java:5041)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at java.lang.reflect.Method.invoke(Method.java:511)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-21 05:12:14.752: E/AndroidRuntime(4313):     at dalvik.system.NativeStart.main(Native Method)
06-21 05:12:19.072: I/Process(4313): Sending signal. PID: 4313 SIG: 9

解决方案

Here Is Your Edited Working Code

MainActivityChampagne.java

package android.application.project.planes;

import java.util.ArrayList;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MainActivityChampagne {

    public static final String KEY_NAME = "title";
    public static final String KEY_NOTES = "lastcall";

    private static final String DATABASE_NAME = "Champagnedb";
    private static final String DATABASE_TABLE = "champagneTable";
    private static final int DATABASE_VERSION = 1;

    private DbHelper ourHelper;
    private final Context ourContext;
    private SQLiteDatabase ourDatabase;

    private static class DbHelper extends SQLiteOpenHelper {

        public DbHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            // TODO Auto-generated constructor stub

        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub\
            db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_NAME
                    + " TEXT NOT NULL);");

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
            db.execSQL("DROP TABLE IF EXIST " + DATABASE_TABLE);
            onCreate(db);

        }

    }

    public MainActivityChampagne(Context c) {
        ourContext = c;

    }

    public MainActivityChampagne open() {
        ourHelper = new DbHelper(ourContext);
        ourDatabase = ourHelper.getWritableDatabase();
        return this;

    }

    public void close() {
        ourHelper.close();

    }

    public long createEntry(String titles, String notes) {
        // TODO Auto-generated method stub
        ContentValues cv = new ContentValues();
        cv.put(KEY_NAME, titles);
        return ourDatabase.insert(DATABASE_TABLE, null, cv);

    }

    public ArrayList<String> getData() {
        // TODO Auto-generated method stub
        String[] columns = new String[] { KEY_NAME };
        Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
                null, null);
        String result = "";
        int iNotes = c.getColumnIndex(KEY_NAME);
        ArrayList<String> string_array = new ArrayList<String>();
        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
            result = c.getString(iNotes) + "\n";
            string_array.add(result);
        }
        return string_array;

    }

    public void updateEntry(String thetitles, String thenotes) {
        // TODO Auto-generated method stub
        ContentValues cvUpdate = new ContentValues();
        cvUpdate.put(KEY_NAME, thetitles);
        /* cvUpdate.put(KEY_NOTES, thenotes); */
        /*
         * ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" +
         * thetitles + KEY_NOTES + "=" + thenotes, null);
         */
        ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "='"
                + thetitles + "'", null);

    }

}

MainActivityPaper.java

package android.application.project.planes;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class MainActivityPaper extends Activity implements OnClickListener {

    TextView text1, title1;
    Button save1, update1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main_activity_paper);

        text1 = (TextView) findViewById(R.id.editText1);
        title1 = (TextView) findViewById(R.id.editText3);
        save1 = (Button) findViewById(R.id.button3);
        update1 = (Button) findViewById(R.id.button5);

        save1.setOnClickListener(this);
        update1.setOnClickListener(this);

    }

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        switch (arg0.getId()) {
        case R.id.button3:

            String titles = title1.getText().toString();
            String notes = text1.getText().toString();

            MainActivityChampagne entry = new MainActivityChampagne(
                    MainActivityPaper.this);
            entry.open();
            entry.createEntry(titles, notes);
            entry.close();

            break;

        case R.id.button5:

            String thetitles = title1.getText().toString();
            String thenotes = text1.getText().toString();

            MainActivityChampagne up = new MainActivityChampagne(
                    MainActivityPaper.this);
            up.open();
            up.updateEntry(thetitles, thenotes);
            up.close();

            break;

        }

    }

}

MainActivityPlanes.java

package android.application.project.planes;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class MainActivityPlanes extends Activity {

    Button Add;
    ListView List;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main_activity_planes);

        Add = (Button) findViewById(R.id.button1);
        List = (ListView) findViewById(R.id.listView1);

        List.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Intent launchActivity = new Intent(MainActivityPlanes.this,
                        MainActivityPaper.class);
                startActivity(launchActivity);
            }
        });

        Add.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(),
                        MainActivityPaper.class);
                startActivityForResult(intent, 0);
            }
        });

        MainActivityChampagne info = new MainActivityChampagne(this);
        info.open();
        ArrayList<String> data = info.getData();
        info.close();
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, data);
        List.setAdapter(arrayAdapter);

    }

}

Here What is wrong in your code is SQLite Database queries. You are created only on row in that table and trying to compare two values while updating. You just check you code you will be able to modify according to that. Hope this will help.

Add the Following code to make your list-view on-click working

Add the following code in MainActivityPlanes.java

        List.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            String str1 = List.getItemAtPosition(arg2).toString();
            System.out.println(str1);
            Bundle bucket = new Bundle();
            bucket.putString("my_key", str1);
            // TODO Auto-generated method stub
            Intent launchActivity = new Intent(MainActivityPlanes.this,
                    MainActivityPaper.class);
            launchActivity.putExtras(bucket);
            startActivity(launchActivity);
        }
    });

Add the Following code in MainActivityPaper.java

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main_activity_paper);


    text1 = (TextView) findViewById(R.id.editText1);

    String s = null;
    try{
        Bundle b = this.getIntent().getExtras();
        s= b.getString("my_key");

        }catch(Exception e){
            s="";
            e.printStackTrace();
        }finally{
            text1.setText(s.toString());
        }
    title1 = (TextView) findViewById(R.id.editText3);
    save1 = (Button) findViewById(R.id.button3);
    update1 = (Button) findViewById(R.id.button5);

    save1.setOnClickListener(this);
    update1.setOnClickListener(this);

}

Hope this will solve your problem.

这篇关于如何阅读和使用的Andr​​oid更新的ListView SQLite数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆