2011-09-17 7 views
2

コードをきれいにしたい& DBを作成したいのですが、主なアクティビティを通して別のクラスから呼びたいのですが...これをやろうとしましたが動作しませんでした。どのように動作するのですか?メインアクティビティクラスを介して(別のクラスの)データベースを呼び出すにはどうすればよいですか?

注:私はAndroid開発の初心者です。だから、質問のこのタイプのために申し訳ありません...

これが主な活動です:

package com.DataStorage.Excercise; 

import android.app.Activity; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 

public class DataStorageActivity extends Activity { 

    private Context context; 
    public SQLiteDatabase db_1=null; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     AccessingDB acc= new AccessingDB(context); 
     acc.onCreate(db_1); 


    } 
} 

DBコードを持っている他のクラス..:

package com.DataStorage.Excercise; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper; 

public class AccessingDB extends SQLiteOpenHelper { 

    public AccessingDB(Context context) { 
     super(context, "Test_1", null, 1); 
     // TODO Auto-generated constructor stub 
    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 

     db.execSQL(CreateTable()); 
     db.execSQL(Insert_1()); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 

    } 

    /* 
    public String CreateDB_1(){ 

     String s1= "create database Test_1;"; 
      return s1; 
    } 
    */ 

    private String CreateTable(){ 

     String s2="create table Customer(id_1 INTEGER,fn TEXT,ln TEXt);"; 
     return s2; 
    } 

    private String Insert_1(){ 

     String s3="insert into Customer values(1,'aaa','bbb');"; 
     return s3; 

    } 

} 

おかげでたくさん..

+0

このリンクをチェックする[Androidのヘルパークラスからsqlitedatabaseを一度初期化する方法](http://stackoverflow.com/questions/7444327/how-to-initialize-sqlitedatabase-once-from-a-helper-class- in-android/7444373#7444373)。メインアクティビティからのデータベースクラスの初期化についてです。ありがとう。 – user370305

+0

オープンするデータベースがコンテキストを必要とするため、これを行うのは悪い考えです。このリンクを参照してください。http://stackoverflow.com/questions/7444327/how-to-initialize-sqlitedatabase-once-from-a-helper-class-in -android/7444355#7444355 –

+0

ok、どうやってsqliteを拡張することができますか? 1つだけ拡張することができます... – Q8Y

答えて

0

MainActivityでデータベースを呼び出すと、他のアクティビティでMainActivityを呼び出してからMainを使用してデータベースを呼び出すことはできませんか?あなたの他の活動の中

Database db; 

:あなたのMainActivityで

:このような

MainActivity main; 

main.db.somequery; //call the method you want 

それとも私が勘違いして、あなたが何か他のものを必要としたのですか?

関連する問題