文本查看列表中发送多个短信安卓工作室

时间:2014-11-27 04:33:35

标签: android arraylist sharedpreferences smsmanager

我希望能够将紧急短信发送到列表中的任意数量的电话号码。我已经完成了大部分工作,但我无法弄清楚如何将字符串(电话)发送到列表中的所有数字。目前它只发送到最后一个号码。我有一个片段,你把数字放入列表,我使用共享偏好来发送详细信息,然后从另一个片段发送,你按下按钮,它意味着发送短信。但我不知道列表中可能有多少个数字。

我也希望它每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 个答案:

答案 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");