我希望能够将紧急短信发送到列表中的任意数量的电话号码。我已经完成了大部分工作,但我无法弄清楚如何将字符串(电话)发送到列表中的所有数字。目前它只发送到最后一个号码。我有一个片段,你把数字放入列表,我使用共享偏好来发送详细信息,然后从另一个片段发送,你按下按钮,它意味着发送短信。但我不知道列表中可能有多少个数字。
我也希望它每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;
}
}
}
答案 0 :(得分:0)
在电话列表中添加您的电话号码并转到下一个活动
ArrayList<String> list= new ArrayList<String>();
intent.putExtra("phone", list);
获取数据
ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("phone");
或强>
发送电话号码作为字符串空格分隔或逗号分隔
String phone="*************,*************,**********";
使用java split方法
SmsManager sms = SmsManager.getDefault();
String[] numbers=phone.split(",");
for(String s:numbers){
//send sms
}
从片段
获取数据ArrayList<String> myList =(ArrayList<String>)getActivity().getIntent().getSerializableExtra("phone");