2017-12-30 21 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(文字列str) –

答えて

1

をexcutingされ、携帯電話の変数の値は、スペースの代わりに、空白またはnullではないことを確認してください。 isEmpty()は、""nullの場合にのみtrueを返します。

+1

を試してください。この場合はnullではありません。 –

+1

デバッグモードでコードを実行するだけです。あなたの値を調べることができます。電話変数の実際の値を知ることができます。 https://developer.android.com/studio/debug/index.htmlこれを試してください。 –

+0

@AndyTurner実際に@AndyTurnerは、最初の列がメッセージで、2番目が連絡先なので、連絡先の列が空で、そのファイルを読み込んでいて、連絡先がないときにメッセージを送信しないようにするファイルを作成しましたしかし条件の代わりに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

wait ** 'WHY' **この' size.size() ' –

+0

あなたはすべてのデータをsize = listOfAllContacts.size()に入れますので、サイズを確認してください。 –

+0

' size () 'メソッドはarraylistのintサイズを返します。私の質問は' WHY'です。** 'size.size()' ** –

関連する問題