一个按钮的多个contentDescription

时间:2016-02-08 12:26:49

标签: android button dialog onclick

在我的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, ""));

}
}

1 个答案:

答案 0 :(得分:0)

当您将内容说明设置为按钮时,请用逗号分隔。

在附加所有电话号码后,您的内容说明将为//phoneNumber1,phoneNumber2,phoneNumber3

现在从您的视图中阅读内容说明

final String allPhoneNumbers = view.getContentDescription().toString().trim();

//say phoneNumber1,phoneNumber2,phoneNumber3

String[] arrPhoneNumbers = allPhoneNumbers .split(",");

现在您拥有此阵列中的所有电话号码。