Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何从自定义列表适配器关闭数据库_Android_Listadapter - Fatal编程技术网

Android:如何从自定义列表适配器关闭数据库

Android:如何从自定义列表适配器关闭数据库,android,listadapter,Android,Listadapter,如何/在何处从自定义列表适配器中关闭数据库连接 我必须从自定义列表适配器中执行数据库查找。这意味着我必须在适配器中打开数据库。当我将原始活动更改为另一个活动时,我收到一个“DatabaseObjectNotClosedException”。我尝试了所有生命周期事件,但在自定义适配器中没有调用任何事件 onDestroy/onStop和其他任何东西都不会被调用 一些代码 public class myAdapter extends SimpleCursorAdapter { privat

如何/在何处从自定义列表适配器中关闭数据库连接

我必须从自定义列表适配器中执行数据库查找。这意味着我必须在适配器中打开数据库。当我将原始活动更改为另一个活动时,我收到一个“DatabaseObjectNotClosedException”。我尝试了所有生命周期事件,但在自定义适配器中没有调用任何事件

onDestroy/onStop和其他任何东西都不会被调用

一些代码

public class myAdapter extends SimpleCursorAdapter 
{
    private db      mDbHelper;

    private Cursor      c;
    private Context     context;

    public myAdapter(Context context, int layout, 
            Cursor c, String[] from, int[] to )
    {

    super(context, layout, c, from, to );

        this.c = c;
        this.context = context;

        mDbHelper   = new db    ( context );
        mDbHelper.open();

    }

    public View getView(final int pos, View inView, ViewGroup parent) {
        View v = inView;

        if ( v == null )
        {
            LayoutInflater inflater = (LayoutInflater)
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            v = inflater.inflate(R.layout.my_row, parent, false);
        }


    this.c.moveToPosition(pos);

    String n = this.c.getString( this.c.getColumnIndex("name" ));
    String c = this.c.getString( this.c.getColumnIndex("cat"  ));

    int vCAT_COLOR[] = mDbHelper.dbio_getCatColors( loc_cat );

    // dispay data here in correct color
    }

    public void onDestroy() { Log.w("TAG", "onDestroy" ); mDbHelper.close(); }
    public void onStop()()  { Log.w("TAG", "onStop"    ); mDbHelper.close(); }
}

给我们看一些你尝试过的东西你能发布一些代码吗?