无效的声明fillwindow()的安卓声明、fillwindow

2023-09-07 11:55:00 作者:爷的拽,只为你

我新受在Android和之前问的问题在这里,我是使用Google,但在这个问题上我无法找到答案。 (也是该stackoverflow.com/questions/4195089没有答案)。

在模拟器上我的测试应用程序我有错误的错误/光标(1512):无效的语句fillWindow()在LogCat中,当我preSS后退按钮上的第二个活动 11-23 19:06:05.050:DEBUG / TestDB的/调试/ MainActivity(1512):的onCreate 11-23 19:06:06.820:DEBUG / TestDB的/调试/ MainActivity(1512): 11-23 19:06:07.240:DEBUG / TestDB的/调试/ MainActivity(1512):的String []从 11-23 19:06:07.270:DEBUG / TestDB的/调试/ MainActivity(1512):SimpleCursorAdapter 11-23 19:06:07.500:DEBUG / TestDB的/调试/ MainActivity(1512):myDbHelper.close 11-23 19:06:07.520:DEBUG / TestDB的/调试/ MainActivity(1512):ONSTART 11-23 19:06:07.551:DEBUG / TestDB的/调试/ MainActivity(1512):onResume 11-23 19:06:09.040:信息/ ActivityManager(587):显示活动ru.olegi / .MainActivity:7962毫秒 11-23 19:06:11.850:信息/ ActivityManager(587):启动活动:意向{补偿= {ru.olegi / ru.olegi.AnotherActivity}} 11-23 19:06:12.100:DEBUG / TestDB的/调试/ AnotherActivity(1512):的onCreate 11-23 19:06:12.970:信息/ ActivityManager(587):显示活动ru.olegi / .AnotherActivity:1100毫秒 11-23 19:06:14.550:ERROR /光标(1512):无效的语句fillWindow() 11-23 19:06:14.590:DEBUG / TestDB的/调试/ MainActivity(1512):ONSTART 11-23 19:06:14.600:DEBUG / TestDB的/调试/ MainActivity(1512):onResume

存储在所有的onCreate code。所以,当我preSS回来,ListView控件是空的。为了修复这个我移动code到ONSTART。下面是日志此,再有无效的声明fillWindow() 11-23 19:26:06.280:DEBUG / TestDB的/调试/ MainActivity(6597):的onCreate 11-23 19:26:06.462:DEBUG / TestDB的/调试/ MainActivity(6597):ONSTART 11-23 19:26:06.700:DEBUG / TestDB的/调试/ MainActivity(6597): 11-23 19:26:06.740:DEBUG / TestDB的/调试/ MainActivity(6597):的String []从 11-23 19:26:06.750:DEBUG / TestDB的/调试/ MainActivity(6597):SimpleCursorAdapter 11-23 19:26:06.981:DEBUG / TestDB的/调试/ MainActivity(6597):myDbHelper.close 11-23 19:26:07.010:DEBUG / TestDB的/调试/ MainActivity(6597):onResume 11-23 19:26:08.030:信息/ ActivityManager(587):显示活动ru.olegi / .MainActivity:3876毫秒 11-23 19:26:15.419:信息/ ActivityManager(587):启动活动:意向{补偿= {ru.olegi / ru.olegi.AnotherActivity}} 11-23 19:26:15.770:DEBUG / TestDB的/调试/ AnotherActivity(6597):的onCreate 11-23 19:26:16.440:信息/ ActivityManager(587):显示活动ru.olegi / .AnotherActivity:1001毫秒 11-23 19:26:17.860:ERROR /光标(6597):无效的语句fillWindow() 11-23 19:26:17.870:DEBUG / TestDB的/调试/ MainActivity(6597):ONSTART 11-23 19:26:18.260:DEBUG / TestDB的/调试/ MainActivity(6597): 11-23 19:26:18.290:DEBUG / TestDB的/调试/ MainActivity(6597):的String []从 11-23 19:26:18.310:DEBUG / TestDB的/调试/ MainActivity(6597):SimpleCursorAdapter 11-23 19:26:18.670:DEBUG / TestDB的/调试/ MainActivity(6597):myDbHelper.close 11-23 19:26:18.700:DEBUG / TestDB的/调试/ MainActivity(6597):onResume

这code

 包ru.olegi;

进口java.io.IOException异常;

进口android.app.Activity;
进口android.content.Intent;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.os.Bundle;
进口android.util.Log;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ListView;
进口android.widget.SimpleCursorAdapter;

公共类MainActivity延伸活动{
    / **第一次创建活动时调用。 * /

    私人DatabaseHelper myDbHelper;
    私人的ListView LV1;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        Log.d(TestDB的/调试/ MainActivity,的onCreate);

        的setContentView(R.layout.main);

    }

    @覆盖
    公共无效的OnStart(){
        super.onStart();
        Log.d(TestDB的/调试/ MainActivity,ONSTART);

        // DATABASE OPEN  -  START
        DatabaseHelper myDbHelper =新DatabaseHelper(本);
        myDbHelper =新DatabaseHelper(本);

        尝试 {
            myDbHelper.createDataBase();
        }赶上(IOException异常E){
            // TODO自动生成的catch块
            e.printStackTrace();
        }

        尝试 {
            myDbHelper.openDataBase();
        }赶上(的SQLException SQLE){
            扔SQLE;
        }

        Log.d(TestDB的/调试/ MainActivity,的openDatabase);

        //数据库 - 开放式

        光标C = myDbHelper.fetchAllFoodname();
        startManagingCursor(C);

        LV1 =(ListView控件)findViewById(R.id.ListView01);

        的String []从=新的String [] {DatabaseHelper.KEY_NAME};
        INT []到=新INT [] {android.R.id.text1};

        Log.d(TestDB的/调试/ MainActivity,的String []来自);

        SimpleCursorAdapter指出=
            新SimpleCursorAdapter(这一点,android.R.layout.simple_list_item_1,C,从,到);

        Log.d(TestDB的/调试/ MainActivity,SimpleCursorAdapter);

        lv1.setAdapter(票据);

        lv1.setOnItemClickListener(新OnItemClickListener(){
            // @覆盖
            公共无效onItemClick(适配器视图<>一种,视图V,INT位置,长的id){

                意向意图=新的意图();

                // getApplicationContext()
                intent.setClass(MainActivity.this,AnotherActivity.class);

                //intent.putExtra(AnotherActivity.EXT_ID,身份证);

                startActivity(意向);
                //完();
            }
         });

        //数据库关闭 - 启动

        myDbHelper.close();
        Log.d(TestDB的/调试/ MainActivity,myDbHelper.close);

        //数据库关闭 -  END
    }

    @覆盖
    公共无效onResume(){
        super.onResume();
        Log.d(TestDB的/调试/ MainActivity,onResume);
    }

    @覆盖
    公共无效的onDestroy(){
        super.onDestroy();
        Log.d(TestDB的/调试/ MainActivity,的onDestroy);
    }
}
 
无效的Windows映像

下面groups.google.com/group/android-developers/browse_thread/thread/8bec793c626fb405我读,为修复fillwindow()错误不需要

  

简答题;你的数据库对象   (分贝)是在错误的范围。更长   回答;通过在所述方法中,宣布分贝   你说的JVM,当   该方法完成数据库   连接(分贝)不再有用。   你应该做的是,在申报分贝   类级别,而不是方法   水平,的onCreate创建它,   关闭它的onDestroy。

好吧,我将部分// DATABASE OPEN - 启动和//数据库关闭 - START来的onCreate和onDestory。现在我已经在开始异常 11-23 19:35:39.310:DEBUG / TestDB的/调试/ MainActivity(8975):的onCreate 11-23 19:35:40.050:DEBUG / TestDB的/调试/ MainActivity(8975): 11-23 19:35:40.050:DEBUG / TestDB的/调试/ MainActivity(8975):ONSTART 11-23 19:35:40.090:DEBUG / AndroidRuntime(8975):关闭虚拟机 11-23 19:35:40.100:WARN / dalvikvm(8975):主题ID = 3:线程退出与未捕获的异常(组= 0x4000fe70) 11-23 19:35:40.120:ERROR / AndroidRuntime(8975):未捕获的处理程序:螺纹主力退出,由于未捕获的异常 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):java.lang.RuntimeException的:无法启动的活动ComponentInfo {ru.olegi / ru.olegi.MainActivity}:显示java.lang.NullPointerException 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread.access $ 1800(ActivityThread.java:112) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1692) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.os.Handler.dispatchMessage(Handler.java:99) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.os.Looper.loop(Looper.java:123) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread.main(ActivityThread.java:3948) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在java.lang.reflect.Method.invokeNative(本机方法) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在java.lang.reflect.Method.invoke(Method.java:521) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:782) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在dalvik.system.NativeStart.main(本机方法) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):由:显示java.lang.NullPointerException 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在ru.olegi.MainActivity.onStart(MainActivity.java:59) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1205) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.Activity.performStart(Activity.java:3490) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2240) 11-23 19:35:40.300:ERROR / AndroidRuntime(8975):11 ...更多

下面是code与移动DB-部分:

 包ru.olegi;

进口java.io.IOException异常;

进口android.app.Activity;
进口android.content.Intent;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.os.Bundle;
进口android.util.Log;
进口android.view.View;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.ListView;
进口android.widget.SimpleCursorAdapter;

公共类MainActivity延伸活动{
    / **第一次创建活动时调用。 * /

    私人DatabaseHelper myDbHelper;
    私人的ListView LV1;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        Log.d(TestDB的/调试/ MainActivity,的onCreate);

        的setContentView(R.layout.main);

        // DATABASE OPEN  -  START
        DatabaseHelper myDbHelper =新DatabaseHelper(本);
        myDbHelper =新DatabaseHelper(本);

        尝试 {
            myDbHelper.createDataBase();
        }赶上(IOException异常E){
            // TODO自动生成的catch块
            e.printStackTrace();
        }

        尝试 {
            myDbHelper.openDataBase();
        }赶上(的SQLException SQLE){
            扔SQLE;
        }

        Log.d(TestDB的/调试/ MainActivity,的openDatabase);

        //数据库 - 开放式


    }

    @覆盖
    公共无效的OnStart(){
        super.onStart();
        Log.d(TestDB的/调试/ MainActivity,ONSTART);

        光标C = myDbHelper.fetchAllFoodname();
        startManagingCursor(C);

        LV1 =(ListView控件)findViewById(R.id.ListView01);

        的String []从=新的String [] {DatabaseHelper.KEY_NAME};
        INT []到=新INT [] {android.R.id.text1};

        Log.d(TestDB的/调试/ MainActivity,的String []来自);

        SimpleCursorAdapter指出=
            新SimpleCursorAdapter(这一点,android.R.layout.simple_list_item_1,C,从,到);

        Log.d(TestDB的/调试/ MainActivity,SimpleCursorAdapter);

        lv1.setAdapter(票据);

        lv1.setOnItemClickListener(新OnItemClickListener(){
            // @覆盖
            公共无效onItemClick(适配器视图<>一种,视图V,INT位置,长的id){

                意向意图=新的意图();

                // getApplicationContext()
                intent.setClass(MainActivity.this,AnotherActivity.class);

                //intent.putExtra(AnotherActivity.EXT_ID,身份证);

                startActivity(意向);
                //完();
            }
         });

    }

    @覆盖
    公共无效onResume(){
        super.onResume();
        Log.d(TestDB的/调试/ MainActivity,onResume);
    }

    @覆盖
    公共无效的onDestroy(){
        super.onDestroy();
        Log.d(TestDB的/调试/ MainActivity,的onDestroy);

        //数据库关闭 - 启动

        myDbHelper.close();
        Log.d(TestDB的/调试/ MainActivity,myDbHelper.close);

        //数据库关闭 -  END
    }
}
 

请,帮助解决无效的声明fillWindow()

AnotherActivity - 就是简单的用的TextView,MainActivity只有列表视图+的onclick监听器

解决方案

 私人DatabaseHelper myDbHelper;
...
公共无效的OnStart(){
     DatabaseHelper myDbHelper =新DatabaseHelper(本);
 

我删除的ONSTART声明DatabaseHelper。这固定的错误/光标(1512)

I newbie in Android and before ask question here i was googling, but on this question i can't find answer. (also this stackoverflow.com/questions/4195089 don't have answer).

In my test app on emulator i have error ERROR/Cursor(1512): Invalid statement in fillWindow() on LogCat when i press back button on second activity. 11-23 19:06:05.050: DEBUG/TestDB/Debug/MainActivity(1512): onCreate 11-23 19:06:06.820: DEBUG/TestDB/Debug/MainActivity(1512): openDataBase 11-23 19:06:07.240: DEBUG/TestDB/Debug/MainActivity(1512): String[] from 11-23 19:06:07.270: DEBUG/TestDB/Debug/MainActivity(1512): SimpleCursorAdapter 11-23 19:06:07.500: DEBUG/TestDB/Debug/MainActivity(1512): myDbHelper.close 11-23 19:06:07.520: DEBUG/TestDB/Debug/MainActivity(1512): onStart 11-23 19:06:07.551: DEBUG/TestDB/Debug/MainActivity(1512): onResume 11-23 19:06:09.040: INFO/ActivityManager(587): Displayed activity ru.olegi/.MainActivity: 7962 ms 11-23 19:06:11.850: INFO/ActivityManager(587): Starting activity: Intent { comp={ru.olegi/ru.olegi.AnotherActivity} } 11-23 19:06:12.100: DEBUG/TestDB/Debug/AnotherActivity(1512): onCreate 11-23 19:06:12.970: INFO/ActivityManager(587): Displayed activity ru.olegi/.AnotherActivity: 1100 ms 11-23 19:06:14.550: ERROR/Cursor(1512): Invalid statement in fillWindow() 11-23 19:06:14.590: DEBUG/TestDB/Debug/MainActivity(1512): onStart 11-23 19:06:14.600: DEBUG/TestDB/Debug/MainActivity(1512): onResume

All code stored in onCreate. So when i press back, ListView is empty. For fix this i move code to onStart. Here is log for this and again have Invalid statement in fillWindow() 11-23 19:26:06.280: DEBUG/TestDB/Debug/MainActivity(6597): onCreate 11-23 19:26:06.462: DEBUG/TestDB/Debug/MainActivity(6597): onStart 11-23 19:26:06.700: DEBUG/TestDB/Debug/MainActivity(6597): openDataBase 11-23 19:26:06.740: DEBUG/TestDB/Debug/MainActivity(6597): String[] from 11-23 19:26:06.750: DEBUG/TestDB/Debug/MainActivity(6597): SimpleCursorAdapter 11-23 19:26:06.981: DEBUG/TestDB/Debug/MainActivity(6597): myDbHelper.close 11-23 19:26:07.010: DEBUG/TestDB/Debug/MainActivity(6597): onResume 11-23 19:26:08.030: INFO/ActivityManager(587): Displayed activity ru.olegi/.MainActivity: 3876 ms 11-23 19:26:15.419: INFO/ActivityManager(587): Starting activity: Intent { comp={ru.olegi/ru.olegi.AnotherActivity} } 11-23 19:26:15.770: DEBUG/TestDB/Debug/AnotherActivity(6597): onCreate 11-23 19:26:16.440: INFO/ActivityManager(587): Displayed activity ru.olegi/.AnotherActivity: 1001 ms 11-23 19:26:17.860: ERROR/Cursor(6597): Invalid statement in fillWindow() 11-23 19:26:17.870: DEBUG/TestDB/Debug/MainActivity(6597): onStart 11-23 19:26:18.260: DEBUG/TestDB/Debug/MainActivity(6597): openDataBase 11-23 19:26:18.290: DEBUG/TestDB/Debug/MainActivity(6597): String[] from 11-23 19:26:18.310: DEBUG/TestDB/Debug/MainActivity(6597): SimpleCursorAdapter 11-23 19:26:18.670: DEBUG/TestDB/Debug/MainActivity(6597): myDbHelper.close 11-23 19:26:18.700: DEBUG/TestDB/Debug/MainActivity(6597): onResume

This code

package ru.olegi;

import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

    private DatabaseHelper myDbHelper;  
    private ListView lv1;   

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("TestDB/Debug/MainActivity", "onCreate");          

        setContentView(R.layout.main);        

    }

    @Override
    public void onStart() {
        super.onStart();
        Log.d("TestDB/Debug/MainActivity", "onStart");

        // DATABASE OPEN - START
        DatabaseHelper myDbHelper = new DatabaseHelper(this);
        myDbHelper = new DatabaseHelper(this);

        try {
            myDbHelper.createDataBase();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }          

        try {
            myDbHelper.openDataBase();
        }catch(SQLException sqle){
            throw sqle;
        }        

        Log.d("TestDB/Debug/MainActivity", "openDataBase");        

        // DATABASE OPEN - END

        Cursor c = myDbHelper.fetchAllFoodname();
        startManagingCursor(c);                       

        lv1 = (ListView) findViewById(R.id.ListView01);

        String[] from = new String[] { DatabaseHelper.KEY_NAME };
        int[] to = new int[] { android.R.id.text1};

        Log.d("TestDB/Debug/MainActivity", "String[] from");

        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, from, to);

        Log.d("TestDB/Debug/MainActivity", "SimpleCursorAdapter");

        lv1.setAdapter(notes);

        lv1.setOnItemClickListener(new OnItemClickListener() {      
            //@Override     
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {

                Intent intent = new Intent();

                //getApplicationContext()
                intent.setClass(MainActivity.this, AnotherActivity.class);

                //intent.putExtra(AnotherActivity.EXT_ID, id);              

                startActivity(intent);
                //finish(); 
            }   
         });   

        // DATABASE CLOSE - START       

        myDbHelper.close();
        Log.d("TestDB/Debug/MainActivity", "myDbHelper.close");

        // DATABASE CLOSE - END         
    }    

    @Override
    public void onResume(){
        super.onResume();
        Log.d("TestDB/Debug/MainActivity", "onResume"); 
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        Log.d("TestDB/Debug/MainActivity", "onDestroy");        
    }        
}

Here groups.google.com/group/android-developers/browse_thread/thread/8bec793c626fb405 i read, for fix fillwindow() error need

Short answer; Your database object (db) is in the wrong scope. Longer answer; By declaring db in the method you're saying to the JVM that when the method finishes your database connection (db) is no longer useful. What you should do is declare db at the class level instead of the method level, create it in onCreate, and close it in onDestroy.

Ok, i move sections // DATABASE OPEN - START and // DATABASE CLOSE - START to onCreate and to onDestory. And now i have exception on start 11-23 19:35:39.310: DEBUG/TestDB/Debug/MainActivity(8975): onCreate 11-23 19:35:40.050: DEBUG/TestDB/Debug/MainActivity(8975): openDataBase 11-23 19:35:40.050: DEBUG/TestDB/Debug/MainActivity(8975): onStart 11-23 19:35:40.090: DEBUG/AndroidRuntime(8975): Shutting down VM 11-23 19:35:40.100: WARN/dalvikvm(8975): threadid=3: thread exiting with uncaught exception (group=0x4000fe70) 11-23 19:35:40.120: ERROR/AndroidRuntime(8975): Uncaught handler: thread main exiting due to uncaught exception 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.olegi/ru.olegi.MainActivity}: java.lang.NullPointerException 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread.access$1800(ActivityThread.java:112) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.os.Handler.dispatchMessage(Handler.java:99) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.os.Looper.loop(Looper.java:123) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread.main(ActivityThread.java:3948) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at java.lang.reflect.Method.invokeNative(Native Method) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at java.lang.reflect.Method.invoke(Method.java:521) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at dalvik.system.NativeStart.main(Native Method) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): Caused by: java.lang.NullPointerException 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at ru.olegi.MainActivity.onStart(MainActivity.java:59) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1205) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.Activity.performStart(Activity.java:3490) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2240) 11-23 19:35:40.300: ERROR/AndroidRuntime(8975): ... 11 more

Here is code with moved db-sections:

package ru.olegi;

import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

    private DatabaseHelper myDbHelper;  
    private ListView lv1;   

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("TestDB/Debug/MainActivity", "onCreate");          

        setContentView(R.layout.main);

        // DATABASE OPEN - START
        DatabaseHelper myDbHelper = new DatabaseHelper(this);
        myDbHelper = new DatabaseHelper(this);

        try {
            myDbHelper.createDataBase();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }          

        try {
            myDbHelper.openDataBase();
        }catch(SQLException sqle){
            throw sqle;
        }        

        Log.d("TestDB/Debug/MainActivity", "openDataBase");        

        // DATABASE OPEN - END


    }

    @Override
    public void onStart() {
        super.onStart();
        Log.d("TestDB/Debug/MainActivity", "onStart");

        Cursor c = myDbHelper.fetchAllFoodname();
        startManagingCursor(c);                       

        lv1 = (ListView) findViewById(R.id.ListView01);

        String[] from = new String[] { DatabaseHelper.KEY_NAME };
        int[] to = new int[] { android.R.id.text1};

        Log.d("TestDB/Debug/MainActivity", "String[] from");

        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, from, to);

        Log.d("TestDB/Debug/MainActivity", "SimpleCursorAdapter");

        lv1.setAdapter(notes);

        lv1.setOnItemClickListener(new OnItemClickListener() {      
            //@Override     
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {

                Intent intent = new Intent();

                //getApplicationContext()
                intent.setClass(MainActivity.this, AnotherActivity.class);

                //intent.putExtra(AnotherActivity.EXT_ID, id);              

                startActivity(intent);
                //finish(); 
            }   
         });   

    }    

    @Override
    public void onResume(){
        super.onResume();
        Log.d("TestDB/Debug/MainActivity", "onResume"); 
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        Log.d("TestDB/Debug/MainActivity", "onDestroy");

        // DATABASE CLOSE - START       

        myDbHelper.close();
        Log.d("TestDB/Debug/MainActivity", "myDbHelper.close");

        // DATABASE CLOSE - END     
    }        
}

Please, help fix Invalid statement in fillWindow()

AnotherActivity - is simple with TextView, MainActivity have only listview + onclick listener

解决方案

private DatabaseHelper myDbHelper; 
...
public void onStart() {
     DatabaseHelper myDbHelper = new DatabaseHelper(this);

I removed the declaration DatabaseHelper in onStart. That fixed the ERROR/Cursor(1512)