2017-12-30 24 views
-4

이것은 내 SMS 활동입니다. 번호가없는 경우에도 어디에서 관련이 있는지 알려주세요. 다른 조건은 여전히 ​​전화 번호가 비어 있으면 조건을 입력하고 다른 사람에게 로그를 보내지 만 전화 번호가없는 경우에도 조건이 표시되지 않습니다

public void sendMySMS() { 
     Log.d(TAG, "sendMySMS: Activated"); 

     Intent i = getIntent(); 
     listOfAllMessages = i.getStringArrayListExtra("messages"); 
     listOfAllContacts = i.getStringArrayListExtra("contacts"); 
     size = listOfAllContacts.size(); 

     for (int j = 0; j < listOfAllContacts.size(); j++) { 
      String phone = listOfAllContacts.get(j); 
      String message = listOfAllMessages.get(j); 

      if(phone.isEmpty()) { 
       Log.d(TAG, "sendMySMS: " + phone); 
       Log.d(TAG, "sendMySMS: " + message); 
      } 
      else { 
       Log.d(TAG, "sendMySMS: " + phone); 
       Log.d(TAG, "sendMySMS: " + message); 
       SmsManager sms = SmsManager.getDefault(); 
       sendStatusTextView.setText("Sending Messages"); 

       PendingIntent sentIntent = PendingIntent.getBroadcast(SendingSms.this, 0, new Intent("SMS_SENT"), 0); 
       sms.sendTextMessage(phone, null, message, sentIntent, null); 
      } 
     } 

} 
+1

이 코드는 다른 디버깅이 필요합니다. – ADM

+0

org.apache.commons.lang.StringUtils.isBlank (String str) –

답변

1

, 당신의 로그를 확인 전화 변수의 값에 공백 대신에 공백 또는 null하지 있는지 확인 Executing (실행 중)입니다. isEmpty()""null의 경우에만 true를 반환합니다.

+1

"및 null"이 경우에는 아니요를 시도하십시오. –

+1

그냥 디버그 모드에서 코드를 실행하십시오 .. 거기에 귀하의 값을 확인할 수 있습니다 .. 전화 변수의 실제 값. https://developer.android.com/studio/debug/index.html 사용해보십시오. –

+0

@AndyTurner 실제로 @AndyTurner는 첫 번째 열이 메시지이고 두 번째가 연락처이기 때문에 연락처 열이 비어있는 파일을 만들었고 그 파일을 읽고있어 연락처가 없을 때 메시지를 보내지 않으려 고하는 경우 Excel을 읽습니다. 하지만 조건 대신에 else 조건이 실행됩니다 .. –

-1

이 작업을 수행해야합니다.

public void sendMySMS() { 
    Log.d(TAG, "sendMySMS: Activated"); 

    Intent i = getIntent(); 
    listOfAllMessages = i.getStringArrayListExtra("messages"); 
    listOfAllContacts = i.getStringArrayListExtra("contacts"); 
    size = listOfAllContacts.size(); 

    for (int j = 0; j < size.size(); j++) { 
     String phone = listOfAllContacts.get(j); 
     String message = listOfAllMessages.get(j); 

     if(phone.isEmpty()) { 
      Log.d(TAG, "sendMySMS: " + phone); 
      Log.d(TAG, "sendMySMS: " + message); 
     } 
     else { 
      Log.d(TAG, "sendMySMS: " + phone); 
      Log.d(TAG, "sendMySMS: " + message); 
      SmsManager sms = SmsManager.getDefault(); 
      sendStatusTextView.setText("Sending Messages"); 

      PendingIntent sentIntent = PendingIntent.getBroadcast(SendingSms.this, 0, new Intent("SMS_SENT"), 0); 
      sms.sendTextMessage(phone, null, message, sentIntent, null); 
     } 
    } 

} 
+0

대기 **'WHY' **이'size.size()' –

+0

모든 데이터를 size = listOfAllContacts.size()에 넣으므로 크기는 –

+0

입니다.()'메소드는 arraylist의 int 크기를 반환하고 나의 질문은'WHY' **'size.size()'** –

관련 문제