Просмотр текста в списке для отправки нескольких смс андроид студии

Я хочу иметь возможность отправлять экстренные смс на любое количество телефонных номеров в списке. Я сделал большую часть этого, но я не могу понять, как сделать строку (телефон) для отправки на все номера в списке. В настоящее время он отправляет только на самый последний номер. У меня есть фрагмент, где вы помещаете числа в список, я использую общие предпочтения для отправки подробностей, а затем из другого фрагмента, вы нажимаете кнопку, и она предназначена для отправки смс. Но я не знаю, сколько номеров может быть в списке.

Я также хочу, чтобы он отправлял номер каждые 10 минут, но я постараюсь над этим по факту.

Заранее спасибо.

 case R.id.settings_my_health_alert_help_button:
            String phone = sharedpreferences.getString("phone", "");
            if (phone.isEmpty()) {
                Toast.makeText(getActivity(), "No emergency contact added", Toast.LENGTH_LONG).show();
            } else {
                SmsManager sms = SmsManager.getDefault();
                //send sms
                sms.sendTextMessage(phone, null, "Emergency At: " + address, null, null);
            }

РЕДАКТИРОВАТЬ: Я думал, что я дам вам больше информации, как я, вероятно, должен в первую очередь: это, где контакты помещаются в список.

public class ContactsActivity extends Activity implements View.OnClickListener, LoaderManager.LoaderCallbacks<Cursor> {

private static final int CONTACT_LOADER = 0;

private View addContactView;
private ListView contactsList;

private CursorAdapter contactAdapter;
private CursorLoader loader;
private Cursor cursor;

SharedPreferences sharedpreferences;
public static final String MyPREFERENCES = "MyPrefs" ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.setting_my_health_contacts_list);

    addContactView = findViewById(R.id.settings_my_health_pills_rem_add);
    contactsList = (ListView) findViewById(R.id.settings_my_health_pills_list);

    addContactView.setOnClickListener(this);
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

    getLoaderManager().initLoader(CONTACT_LOADER, null, this);
}

private void updateSettings(){
    contactAdapter = new CursorAdapter(this, cursor, true){
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
            View view = View.inflate(ContactsActivity.this, R.layout.settings_my_health_contact_item, null);
            TextView name = (TextView) view.findViewById(R.id.contact_item_name);
            TextView phone = (TextView) view.findViewById(R.id.contact_item_phone);
            return view;
        }

        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            TextView name = (TextView) view.findViewById(R.id.contact_item_name);
            TextView phone = (TextView) view.findViewById(R.id.contact_item_phone);


            Contact contact = Contact.fromCursor(cursor);

            name.setText(contact.getName());
            phone.setText(contact.getPhoneNumber());
            setLongClickListener(view, contact);
        }

        public void setLongClickListener(final View view, final Contact contact){
            view.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    DialogsHelper.getOKCancelDialog(ContactsActivity.this, "Would you like delete contact " + contact.getName() + "?", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            String selection = MezzoSQLiteOpenHelper.COLUMN_ID +  "=?";
                            String[] args = { String.valueOf(contact.getId()) };
                            getContentResolver().delete(MezzoContentProvider.CONTENT_URI_CONTACTS,
                                    selection, args);
                        }
                    }, null);
                    return true;
                }
            });


        }
    };
    contactsList.setAdapter(contactAdapter);
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.settings_my_health_pills_rem_add:
            final AddContactDialog dialog = new AddContactDialog(this, new EditDialogCallback<DoubleEditTextDialog.DoubleEditTextView>() {
                @Override
                public void onOkClick(DoubleEditTextDialog.DoubleEditTextView editForm) {
                    String name = editForm.getEditText1();
                    String phone = editForm.getEditText2();
                    SharedPreferences.Editor editor = sharedpreferences.edit();
                    editor.putString("name", name);
                    editor.putString("phone", phone);

                    editor.commit();

                    Contact contact = new Contact(name, phone);
                    getContentResolver().insert(MezzoContentProvider.CONTENT_URI_CONTACTS, contact.buildContentValues());
                }

                @Override
                public void onCanceled() {

                }

                @Override
                public void onInit(DoubleEditTextDialog.DoubleEditTextView editForm) {

                }
            });
            dialog.show();
            break;
    }
}

}

1 ответ

Добавьте свои номера телефонов в список массивов и переходите к следующему действию

ArrayList<String> list= new ArrayList<String>();
intent.putExtra("phone", list);

Чтобы получить данные

 ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("phone");

ИЛИ ЖЕ

отправить номер телефона в виде строки с разделителями или запятыми

String phone="*************,*************,**********";

Используйте метод разделения Java

SmsManager sms = SmsManager.getDefault();
String[] numbers=phone.split(",");
for(String s:numbers){
   //send sms
}

Получить данные из фрагмента

ArrayList<String> myList =(ArrayList<String>)getActivity().getIntent().getSerializableExtra("phone");
Другие вопросы по тегам