目前我的代码只能选择一个联系人并显示在选定的editText中,单击按钮添加后,详细信息将插入数据库。现在我想选择多个联系人并将它们插入数据库。对我来说最好的方法是什么实施这个?
以下是我当前的代码。
public class newBill extends AppCompatActivity implements View.OnClickListener{
//Defining views
private EditText description;
private EditText person_engaged;
private EditText amount;
private EditText contact;
private String username;
private Button buttonAdd;
private Button buttonView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_bill);
((Button)findViewById(R.id.btnBrowse)).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, 1);
}
});
//Initializing views
description = (EditText) findViewById(R.id.description);
person_engaged = (EditText) findViewById(R.id.person_engaged);
amount = (EditText) findViewById(R.id.amount);
contact=(EditText) findViewById(R.id.person_engaged_contact);
buttonAdd = (Button) findViewById(R.id.buttonAdd);
buttonView = (Button) findViewById(R.id.buttonView);
//Setting listeners to button
buttonAdd.setOnClickListener(this);
buttonView.setOnClickListener(this);
}
//get contact picker
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME },
null, null, null);
if (c != null && c.moveToFirst()) {
String number = c.getString(0);
String name = c.getString(1);
showSelectedNumber(name, number);
}
} finally {
if (c != null) {
c.close();
}
}
}
}
}
public void showSelectedNumber(String name, String number) {
Toast.makeText(this, name + ": " + number, Toast.LENGTH_LONG).show();
person_engaged.setText(name);
contact.setText(number);
}
//Adding an bill
private void addBills(){
final String desc = description.getText().toString().trim();
final String person = person_engaged.getText().toString().trim();
final String amo = amount.getText().toString().trim();
final String contacts = contact.getText().toString().trim();
//Fetching username from shared preferences
SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
username = sharedPreferences.getString(Config.USERNAME_SHARED_PREF,"Not Available");
final String currentUser = username.toString().trim();
class AddBills extends AsyncTask<Void,Void,String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(newBill.this,"Adding...","Wait...",false,false);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(newBill.this,s,Toast.LENGTH_LONG).show();
description.getText().clear();
person_engaged.getText().clear();
amount.getText().clear();
contact.getText().clear();
}
@Override
protected String doInBackground(Void... v) {
HashMap<String,String> params = new HashMap<>();
params.put(Config.KEY_DESCRIPTION,desc);
params.put(Config.KEY_PERSON_ENGAGED,person);
params.put(Config.KEY_AMOUNT,amo);
params.put(Config.KEY_PERSON_ENGAGED_CONTACT,contacts);
params.put(Config.KEY_CREATED_BY_NAME,currentUser);
RequestHandler rh = new RequestHandler();
String res = rh.sendPostRequest(Config.URL_ADD, params);
return res;
}
}
AddBills ae = new AddBills();
ae.execute();
}
@Override
public void onClick(View v) {
if(v == buttonAdd){
addBills();
}
if(v == buttonView){
startActivity(new Intent(this,ViewAllBills.class));
}
}
//for sending direct sms notification
public void sendSMS(String phoneNo, String msg) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, msg, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(),ex.getMessage().toString(),
Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
}
}