2016-04-23 11 views
0

私はsmsでデータをインポートするコードを持っています!そして今、私はデータベースからこのデータをIncomingSMSReceiver上の変数にエクスポートする方法が必要です(おそらく各フィールドに1つのメソッドを作成します)。単一のセル値を変数にエクスポートできますか?SQliteエクスポートする方法単一のセルの値の文字列を変数に

Eoma私はonoma列のためにそれをしようとしましたが、私はどのデータベースメソッドを使用すべきか、そしてどのSQLをどのようにエクスポートするのかはわかりません。

DatabaseHelper.java

package toulios.ptixiakh.toulios; 

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

public class DatabaseHelper extends SQLiteOpenHelper { 

public static final String DATABASE_NAME="Toulios.db"; 
public static final String TABLE_NAME="Foitites_table"; 
public static final String Col_AM="AM"; 
public static final String Col_ONOMA="ONOMA"; 
public static final String Col_EPITHETO="EPITHETO"; 
public static final String Col_EXAMINO="EXAMINO"; 

public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, 1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table " + TABLE_NAME+"(AM INTEGER PRIMARY KEY,ONOMA TEXT,EPITHETO TEXT, EXAMINO INTEGER)"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME); 
    onCreate(db); 
} 


public boolean eisagoghfititi(String am,String onoma,String epitheto,String examino) 
{ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(Col_AM,am); 
    contentValues.put(Col_ONOMA,onoma); 
    contentValues.put(Col_EPITHETO,epitheto); 
    contentValues.put(Col_EXAMINO,examino); 
    long result = db.insert(TABLE_NAME,null,contentValues); 
    if(result == -1) 
     return false; 
    else 
     return true; 
} 

    public String exagwgh_onoma(String am){ 
    String str=""; 
    final String SQL_SELECT_QUERY = "SELECT "+DatabaseHelper.Col_ONOMA+" FROM "+DatabaseHelper.TABLE_NAME+" WHERE "+DatabaseHelper.Col_AM+" = "+am; 

    DatabaseHelper queryDbHelperObj = new DatabaseHelper(this); 
    SQLiteDatabase sqLiteDatabase = queryDbHelperObj.getReadableDatabase(); 
    Cursor cursor = sqLiteDatabase.rawQuery(SQL_SELECT_QUERY,null); 
    if (cursor.moveToFirst()) { 
     str = cursor.getString(cursor.getColumnIndex("content")); 
    } 
    cursor.close(); 
return str; 
    } 
} 

IncomingSMSReceiver.java

public class IncomingSMSReceiver extends BroadcastReceiver{ 

private static final String SMS_RECEIVED ="android.provider.Telephony.SMS_RECEIVED"; 

@Override 
public void onReceive(Context _context, Intent _intent) { 

    if (_intent.getAction().equals(SMS_RECEIVED)) { 
     Bundle bundle = _intent.getExtras(); 
     if (bundle != null) { 

      Object[] pdus = (Object[]) bundle.get("pdus"); 

      SmsMessage[] messages = new SmsMessage[pdus.length]; 
      for (int i = 0; i < pdus.length; i++) 
       messages[i] = SmsMessage 
         .createFromPdu((byte[]) pdus[i]); 
      for (SmsMessage message : messages) 
      { 
       String strPhoneNo = message.getOriginatingAddress(); 
       String msg = message.getMessageBody(); 

       if (msg.startsWith("01")) 
       { 
        try { 
         final String[] temaxismeno_sms = msg.split(":"); 

         DatabaseHelper dbHelper = new DatabaseHelper(_context.getApplicationContext()); 
         dbHelper.eisagoghfititi(temaxismeno_sms[1],temaxismeno_sms[2],temaxismeno_sms[3],temaxismeno_sms[4]); 
         Toast.makeText(_context, "Egine eisagwgh fititi!!", Toast.LENGTH_LONG).show(); 
         String message1 = "H Eisagwgh egine sthn vash.";// minima pou tha stalthei 
         SmsManager sms = SmsManager.getDefault(); 
         sms.sendTextMessage(strPhoneNo, null, message1, null, null); 
         Toast.makeText(_context, "O fititis idopiithike", Toast.LENGTH_LONG).show(); 
         } 
        catch (Exception e) 
         { 
         Toast.makeText(_context, "SMS failed, please try again.", 
           Toast.LENGTH_LONG).show(); 
         e.printStackTrace(); 
         } 
       } 
       if (msg.startsWith("02")) 
       { 
        final String[] temaxismeno_sms = msg.split(":"); 
        String apotelesma; 
        DatabaseHelper dbHelper = new DatabaseHelper(_context.getApplicationContext()); 
        apotelesma = dbHelper.exagwgh_onoma(temaxismeno_sms[1]); 
        String message2 = "To onoma tou am pou epilexate einai "+apotelesma; 
        SmsManager sms = SmsManager.getDefault(); 
        sms.sendTextMessage(strPhoneNo, null, message2, null, null); 

       } 
      } 
     } 
    } 
} 
} 

答えて

0

あなたは、以下の方法でそれを達成することができます -

EDITED
public static final String SQL_SELECT_QUERY = "SELECT COLUMN1 FROM "+AndroidOpenDbHelper.TEST_TABLE; 

AndroidOpenDbHelper queryDbHelperObj = new AndroidOpenDbHelper(this); 
SQLiteDatabase sqLiteDatabase = queryDbHelperObj.getReadableDatabase(); 
Cursor cursor = sqLiteDatabase.rawQuery(SQL_SELECT_QUERY,null); 

if(cursor != null) 
{ 
    if(cursor.moveToFirst()) 
    { 
     do 
     { 
      String ColumnVal = cursor.getString(cursor.getColumnIndex("Column1")); 

     }while(cursor.moveToNext()); 
    } 
} 

"SELECT "+AndroidOpenDbHelper.ONOMA+" FROM "+AndroidOpenDbHelper.TEST_TABLE+" WHERE "+AndroidOpenDbHelper._ID+" = "+am; 

希望します。

+0

もしあなたが私のコードを見たら私は1つの引数を持つメソッドが必要です。魔法はidであり、 – Fmetal

+0

@Fmetal - あなたのIDが 'am'のカラム' onoma'を取得したいのですが、そうですか?その場合は、それに応じてSQL文を変更してください。上記の私の編集された答えをチェックしてください。 –

+0

私はあなたが私のコードに適合するようにいくつかの修正を加えて言ったようにしましたが、私は(これ)に問題があります。私は上のコードも編集しました! – Fmetal

関連する問題