2014-08-30 2 views
0

안녕하세요, 안드로이드에서 새로 생겼습니다.이 애플리케이션은 데이터베이스를 사용하는 첫 번째 앱입니다. 오류없이 채우기 위해안드로이드는 Out of Activity를 사용합니다.

public class ReceiveFields { 
    public long lastId; 
    public String smsNumber; 
    public String mobileNumber; 
    public String senderName; 
    public String smsBody; 
    public DateTimeD1 receiveDate; 

    public ReceiveFields(){ 

    } 
    public ReceiveFields(long lastId, String smsNumber, String mobileNumber, String senderName, String smsBody, DateTimeD1 receiveDate) { 
     this.lastId = lastId; 
     this.smsNumber = smsNumber; 
     this.mobileNumber = mobileNumber; 
     this.senderName = senderName; 
     this.smsBody = smsBody; 
     this.receiveDate = receiveDate; 
    } 

TSMS 수준의 기능과 내가 원하는 내 응용 프로그램에서 나는 같은 필드 ReceivedFields을 채울 수있는 이름 TSMS 같은 다른 클래스에서 지금이 간단한 구조

public class DatabaseHandler extends SQLiteOpenHelper{ 
     private static String DB_PATH     = ""; 
     private static final String DATABASE_NAME  = "tsms"; 
     private static String RECEIVE_FIELDS_TABLE  = "ReceiveFields"; 
     private static final String COLUMN_ID   = "id"; 

    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

으로 DatabaseHandler 클래스가 데이터베이스에 저장하려면 다음과 같이하십시오.

for (int i = 0; i <= strings.length - 1; i++) { 
       String[] str1 = WSDLHelper.convert3(strings[i]); 
       try { 
        receiveArray.add(new ReceiveFields(
          Long.valueOf(str1[0]), 
          str1[1], 
          str1[2], 
          URLDecoder.decode(str1[3], "UTF-8"), 
          URLDecoder.decode(str1[4], "UTF-8"), 
          WSDLHelper.convertDate(str1[5]))); 
       } 
       catch (UnsupportedEncodingException ex) { 
        throw new TException(PublicErrorList.NOT_EXIST_ERROR_DETAIL); 
       } 
      } 

이제 레코드를 데이터베이스에 저장하려고합니다. for에 난 그래서 내가 갖는이 오류 이전 DatabaseHandler db = new DatabaseHandler(this);을 정의 그리고 난 그것을 해결할 수 : 당신은이

enter image description here

+0

작업 내에서 databasehandler 클래스를 초기화 했습니까? 아니면 그냥 자바 클래스에서? – Ranjit

+0

@RanjitPati 그냥 자바 클래스 –

+1

다음 응용 프로그램 lable 컨텍스트를 사용해야합니다 .. 또는 컨텍스트에서 컨텍스트를 전달합니다 .. – Ranjit

답변

3

이 DatabaseHandler 클래스에 컨텍스트를 전달합니다. 따라서 Activity, Service 또는 Broadcast Receiver로 수행 할 수 있습니다. 그래서 활동, 서비스 또는 수신기에서

public ReceiveFields(Context ctx){ 
    this.ctx=ctx; //create a field Context ctx; 
    } 

패스 상황이 생성자

public ReceiveFields(){ 

    } 

을 변경하고 당신은 ctx 대신 this 사용할 수 있습니다.