Просмотр текста в списке для отправки нескольких смс андроид студии
Я хочу иметь возможность отправлять экстренные смс на любое количество телефонных номеров в списке. Я сделал большую часть этого, но я не могу понять, как сделать строку (телефон) для отправки на все номера в списке. В настоящее время он отправляет только на самый последний номер. У меня есть фрагмент, где вы помещаете числа в список, я использую общие предпочтения для отправки подробностей, а затем из другого фрагмента, вы нажимаете кнопку, и она предназначена для отправки смс. Но я не знаю, сколько номеров может быть в списке.
Я также хочу, чтобы он отправлял номер каждые 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");