在我的activity
中,我有一种方法可以读取按钮的contentDescriptio
n并获取电话号码并进行呼叫。
我有一份公司所有部门的清单。但是,对于同一个部门,我们有多个号码,我该怎么做。如何为按钮添加多个contentDescription
以弹出一个对话框,允许用户选择应该拨打的号码。
public class ContactUs extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact_us);
ImageView back = (ImageView) findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(ContactUs.this , Introduction.class);
startActivity(i);
overridePendingTransition(R.animator.slide_in, R.animator.slide_out);
}
});
}
public void onClickCall(View view) {
final String phoneNumber = view.getContentDescription().toString().trim();
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel://" + phoneNumber));
startActivity(intent);
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Test Alert").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
}
public void onClickMail(View view) {
String mailaddress = view.getContentDescription().toString().trim();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { mailaddress});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(intent, ""));
}
}
答案 0 :(得分:0)
当您将内容说明设置为按钮时,请用逗号分隔。
在附加所有电话号码后,您的内容说明将为//phoneNumber1,phoneNumber2,phoneNumber3
现在从您的视图中阅读内容说明
final String allPhoneNumbers = view.getContentDescription().toString().trim();
//say phoneNumber1,phoneNumber2,phoneNumber3
String[] arrPhoneNumbers = allPhoneNumbers .split(",");
现在您拥有此阵列中的所有电话号码。