2016-09-30 4 views
0

장치 ID와 장치 이름이 로컬 데이터베이스 (sqlite)에 있는지 확인하는 작업이 있으며 장치가 이미 등록 된 경우 ConnectToCostCenter 이라는 다른 작업으로 넘어갑니다 활동의 코드이다sqlite 데이터베이스에서 장치 ID와 이름을 확인하십시오.

public class StartActivity extends Activity { 

Handler handler = new Handler(); 
DBHandler dbHandler; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.start_activity); 
    dbHandler = new DBHandler(this); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      String DeviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 
      String DeviceName = Build.MODEL; 
      RegisterDevice cc = new RegisterDevice(DeviceId, DeviceName); 
      if (!dbHandler.getAllDevice().isEmpty() && (dbHandler.getAllDevice().contains(cc))){ 
       final Intent mainIntent = new Intent(StartActivity.this, ConnectToCostCenter.class); 
       startActivity(mainIntent); 
      } else { 
       Intent intent = new Intent(StartActivity.this, CreateOrEditActivity.class); 
       startActivity(intent); 
      } 
      StartActivity.this.finish(); 
     } 
    }, 3000); 
} 

}

과의 ArrayList :

public ArrayList<RegisterDevice> getAllDevice() { 
    SQLiteDatabase db = this.getReadableDatabase(); 
    ArrayList<RegisterDevice> activityList = null; 
    try{ 
     activityList = new ArrayList<RegisterDevice>(); 
     String QUERY = "SELECT * FROM "+DEVICE_TABLE_NAME; 
     Cursor cursor = db.rawQuery(QUERY, null); 
     if(!cursor.isLast()) 
     { 
      while (cursor.moveToNext()) 
      { 
       RegisterDevice activity = new RegisterDevice(); 

       activity.setDeviceId(cursor.getString(0)); 
       //  activity.setCreated(cursor.getString(2)); 
       // activity.setModified(cursor.getString(3)); 
       activity.setDeviceName(cursor.getString(1)); 
       activityList.add(activity); 
      } 
     } 
     db.close(); 
    }catch (Exception e){ 
     Log.e("error",e+""); 
    } 
    return activityList; 
} 

문제는 장치가 데이터베이스에 존재하고 ConnectToCostCenter 대신 CreateOrEditActivity 활동이 나타나면 어떤 도움을 주실까요 ??

+0

코드를 디버그하고 검사 할 행이 있는지 여부를 db에 체크인하십시오. – Anjali

답변

0

나는 당신이 조건을 일치시키는 데 약간의 혼란을 겪고 있다고 생각하는데, 배열 목록을 반복하고 루프 내에서 조건을 만들어 루프가 참인지 거짓인지에 관계없이 원하는 위치로 리디렉션 할 수 있는지 확인하십시오.

관련 문제