2012-03-25 8 views
0
package nidhin.survey; 

import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

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

public class DatabaseHelper extends SQLiteOpenHelper { 

static final String TABLE = "mygrades"; 
static final String NAME = "name"; 
static final String VALUE = "value"; 

DatabaseHelper(Context context) 
{ 
    super(context, "grades.sqlite", null, 1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) 
{ 

    db.execSQL("CREATE TABLE " + TABLE + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
       " name TEXT, value REAL);"); 
    ContentValues cv = new ContentValues(); 

    cv.put(NAME, "1.Do you have a car"); 
    cv.put(VALUE, "yes"); 
    db.insert(TABLE, NAME, cv); 

    cv.put(NAME, "2.What is the make"); 
    cv.put(VALUE, "mazda"); 
    db.insert(TABLE, NAME, cv); 

    cv.put(NAME, "3.What is the year"); 
    cv.put(VALUE, "2010"); 
    db.insert(TABLE, NAME, cv); 

    cv.put(NAME, "4.What do you like about the car "); 
    cv.put(VALUE, "its fast"); 
    db.insert(TABLE, NAME, cv); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{ 
    // TODO Auto-generated method stub 
    android.util.Log.w("mygrades", "Upgrading database, this will destroy all data"); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE); 
    onCreate(db); 
} 

} 

私は別のアクティビティで調査を行い、値はそのアクティビティからこのデータベースアクティビティに渡されます。私は調査の回答を文字列変数としてデータベースに渡し、データベースに回答を格納することを考えていました。1つのアクティビティからデータベースへの変数の転送

これは効率的な方法ですか?あるいはこれを行うための他の方法がありますか?コンテンツプロバイダはどのように役立ちますか?

答えて

1

「文字列変数として渡す」という意味はどういうことか分かりません。私が行うことは、DatabaseHelperにパブリックメソッドを作成し、それを使って他のアクティビティからデータベースにレコードを追加することです。私は別のアクティビティから、レコードのこのタイプを追加したいとき

public long createEventType(String eventType, String eventTypeDesc) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(EVENTTYPE_NAME, eventType); 
    initialValues.put(EVENTTYPE_DESC, eventTypeDesc); 
    return mDb.insertWithOnConflict(EVENTTYPE_TABLE, null, initialValues, 
      SQLiteDatabase.CONFLICT_IGNORE); 
} 

それから私は単純に次の操作を行います。

mDbHelper.createEventType(title, desc);

1
それはあなたが調査を持っていることを計画んどのように多くの質問を知るのに役立つだろう

質問を作成するにはどうしたらいいですか?新しい質問を時間内に更新する予定がある場合(または収集したデータを使って何をしていますか)データベースには、コードに6つ以上の質問を挿入し、回答を保存する予定がある場合は、良いオプションです(ただし、実際に質問を作成する方法によって異なります)。Strings

質問の数が本当に少ない場合(また、アンケートの更新を計画していない、または1回のアンケートでも)、内部ストレージのファイルに保存することもできますアプリはそれにアクセスできます)。

ContentProviderは、アプリからのデータをユーザーの携帯電話にインストールされている他のアプリに公開する場合には本当に便利です。 ContentProviderがあなたに興味を持ってはならないように、あなたはその調査の結果を他のインストールされたアプリに公開することを計画しているとは思えません。

+0

あなたの応答に感謝します。私は他のアプリにデータを転送しないので、私はコンテンツプロバイダーが必要になることはありません。 –

+0

私が持っている答えはまったく、わずかな言葉や数字です –

+0

私はちょうど12の質問があります –

関連する問題