-1

アクティビティ(Android)からJavaクラスでdbを呼び出しています。アクティビティからJavaクラスにこのように呼び出すことは可能ですか。これをサーバー通信アンドロイドに使用しています。サーバーからデータを取得しましたが、DBに挿入できません。

例外が発生しているように電話しました。誰かが私を助けてくれます。よろしくお願いします。

11-01 06:52:03.596: W/System.err(673): java.lang.NullPointerException
11-01 06:52:03.603: W/System.err(673):  at com.commiunication.ServerConnection.Insert(ServerConnection.java:32)
11-01 06:52:03.627: W/System.err(673):  at com.commiunication.MainActivity.serverconnection(MainActivity.java:138)
11-01 06:52:03.627: W/System.err(673):  at com.commiunication.MainActivity.onCreate(MainActivity.java:46)
11-01 06:52:03.633: W/System.err(673):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-01 06:52:03.633: W/System.err(673):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-01 06:52:03.633: W/System.err(673):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-01 06:52:03.633: W/System.err(673):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-01 06:52:03.633: W/System.err(673):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-01 06:52:03.633: W/System.err(673):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-01 06:52:03.633: W/System.err(673):  at android.os.Looper.loop(Looper.java:123)
11-01 06:52:03.633: W/System.err(673):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-01 06:52:03.633: W/System.err(673):  at java.lang.reflect.Method.invokeNative(Native Method)
11-01 06:52:03.655: W/System.err(673):  at java.lang.reflect.Method.invoke(Method.java:521)
11-01 06:52:03.655: W/System.err(673):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-01 06:52:03.655: W/System.err(673):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-01 06:52:03.655: W/System.err(673):  at dalvik.system.NativeStart.main(Native Method)

androidactivity.java

ServerConnection server=new ServerConnection();
try {

server.Insert(ReturnValue);
sampleDB =    this.openOrCreateDatabase(SAMPLE_DB_NAME,MODE_PRIVATE,null);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

サーバー接続.java

public  void Insert(String ReturnValue) throws JSONException{
JSONObject CDGSGJson=new JSONObject(ReturnValue);           
JSONArray idarr = CDGSGJson.getJSONArray("MeasureArr"); 
System.out.println(""+idarr.length());  
sampleDB= openOrCreateDatabase(SAMPLE_DB_NAME,     SQLiteDatabase.OPEN_READWRITE, null);
System.out.println(""+idarr.length());  
//Toast.makeText(this, "Group Details Downloading", Toast.LENGTH_SHORT).show();
try {   
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " + table_name + " "
+ "( id INTEGER PRIMARY KEY AUTOINCREMENT," + " measure TEXT NOT NULL ); ");       
if(idarr.length()>0){

for(int cc=0;cc<idarr.length();cc++){               
JSONObject CatObj = idarr.getJSONObject(cc);
String id_get=CatObj.getString("id");   
String measure_get=CatObj.getString("measure"); 

sampleDB.execSQL("INSERT OR REPLACE INTO " + table_name+ " Values      
                                                ('"+id_get+"','"+measure_get+"');");

            }}

    } catch (Exception e) {
        // TODO: handle exception
         e.printStackTrace();
        // System.out.print(e.printStackTrace());
    }
4

2 に答える 2

0

Android では、db を使用するために、SqLiteOpenHelper という API が組み込まれています。

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.htmlをご覧ください

これがサンプルコードです

http://www.vogella.com/articles/AndroidSQLite/article.html

于 2012-11-01T07:27:15.913 に答える
0

以下のリンクを参照してください。

ローカル データベースとの対話の場合: Link1。そこからソースコードを直接ダウンロードして理解しようとすることができます。Link2 .

リモート データベースの場合: リモート データベースの場合、Android クライアント アプリに応答する webService を作成する必要があります。この Link1 , Link2 for Andoid with php-mysql を参考ください。

上記のリンクがお役に立てば幸いです。コーディングをお楽しみください。

于 2012-11-01T07:38:54.243 に答える