2017-03-11 8 views
-1

Ich habe eine Arraylist von Telefonnummern. Wenn ich eine Nachricht sende, sendet sie nur an die letzte Nummer in der Liste. hier ist mein CodeSenden Sie eine SMS an mehrere Telefonnummern

public void onActivityResult (int requestCode, int resultCode, Intent-Daten) { super.onActivityResult (requestCode, resultCode, data);

if(requestCode == CONTACT_PICK_REQUEST && resultCode == RESULT_OK){ 

     ArrayList<Contact> selectedContacts = data.getParcelableArrayListExtra("SelectedContacts"); 

     String display=""; 
     for(int i=0;i<selectedContacts.size();i++){ 

      display += (i+1)+" "+selectedContacts.get(i).toString()+"\n"; 
      theNumber=selectedContacts.get(i).phone; 

     } 
     contactsDisplay.setText("Selected Contacts : \n\n"+display); 

    } 

} 


protected void sendMsg(String theNumber, String myMsg) { 
    String SENT = "Message Sent"; 
    String DELIVERED = "Message Delivered"; 

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0); 
    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0); 

    registerReceiver(new BroadcastReceiver() { 
     public void onReceive(Context arg0, Intent arg1) { 
      switch (getResultCode()) { 
       case Activity.RESULT_OK: 

         Toast.makeText(MainActivity.this, "SMS SENT", Toast.LENGTH_LONG).show(); 
        break; 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        Toast.makeText(MainActivity.this, "Generic Failure", Toast.LENGTH_LONG).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
        Toast.makeText(MainActivity.this, "No Service", Toast.LENGTH_LONG).show(); 
        break; 
      } 
     } 
    }, new IntentFilter(SENT)); 

    registerReceiver(new BroadcastReceiver() { 

     public void onReceive(Context arg0, Intent arg1) { 
      switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), "SMS delivered", Toast.LENGTH_LONG).show(); 
        break; 
       case Activity.RESULT_CANCELED: 
        Toast.makeText(getBaseContext(), "SMS not delivered", Toast.LENGTH_LONG).show(); 
        break; 
      } 

     } 
    }, new IntentFilter(DELIVERED)); 

    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(theNumber, null, myMsg, sentPI, deliveredPI); 

} 

}

+0

Dieser Code ruft 'sendMsg()' nirgendwo auf. –

Antwort

0

Ihre Schleife einfach ersetzt die Zahlen aus der Liste theNumber Variable.

theNumber=selectedContacts.get(i).phone; 

Wenn die Schleife endet, findet es die Variable theNumber mit der letzten Nummer aus der Liste aktualisiert.

+0

tut mir leid. Ich bin wirklich hier verloren. Ich bin neu in Android-Programmierung. Was kann ich tun? – KourtK

+0

Ich denke, du bist neu beim Schreiben von Code. Rufen Sie die 'sendMsg (theNumber, gesendet werden;);' innerhalb der Schleife, nachdem die Nummer der Variable 'die Zahl' zugewiesen wurde. – vijayraj34

Verwandte Themen