Android 单击并确认后拨打电话

Android 单击并确认后拨打电话,android,phone-call,Android,Phone Call,我想在用户确认的情况下,单击文本视图并拨打电话号码,但不是直接拨打。我的代码是这样的,但当我点击时它会直接打电话 txt_ocho.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { Intent callIntent = new Intent(Intent.ACTION_CALL);

我想在用户确认的情况下,单击文本视图并拨打电话号码,但不是直接拨打。我的代码是这样的,但当我点击时它会直接打电话

txt_ocho.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        try {
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:" + txt_ocho.getText().toString().trim()));
            startActivity(callIntent);
        } catch (ActivityNotFoundException activityException) {
            Log.d("Calling a Phone Number", "Call failed" + activityException);
        }
    }
});

有人能帮我吗?谢谢

好的,在onClick块中,显示一个带有两个按钮的
警报对话框
(取消和确认)


在onClick块中,显示一个带有两个按钮(取消和确认)的
alertDialog


单击textview,您可以直接将用户带到电话屏幕,将这些属性添加到您的
textview
(xml文件):


那么您就不需要在代码中处理意图了!:)

单击textview,您可以直接将用户带到电话屏幕,将这些属性添加到您的
textview
(xml文件):


那么您就不需要在代码中处理意图了!:)

你需要用户交互。这里的
alertDialog
对我来说似乎是一个正确的解决方案。也许可以打开呼叫屏幕,但在用户按下呼叫按钮之前不呼叫EP,这取决于您想要什么,是否留在应用程序中!意向意向=新意向(意向.行动拨号);setData(Uri.parse(“电话:0123456789”);星触觉(意向);另外,在xml文件中,您可以将这些属性添加到textview:android:autoLink=“phone”android:linksClickable=“true”中,因为您需要用户交互。这里的
alertDialog
对我来说似乎是一个正确的解决方案。也许可以打开呼叫屏幕,但在用户按下呼叫按钮之前不呼叫EP,这取决于您想要什么,是否留在应用程序中!意向意向=新意向(意向.行动拨号);setData(Uri.parse(“电话:0123456789”);星触觉(意向);另外,在xml文件中,您可以将这些属性添加到textview:android:autoLink=“phone”android:linksClickable=“true”我不理解这段代码,如何在示例中使用?thanks@AnderEnzunza我改了,我不明白这个代码,我怎么能在我的例子中使用?thanks@AnderEnzunza我改了
txt_ocho.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle("Confirm call")
        .setMessage("Are you sure you want to make the phone call?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            try {
                 Intent callIntent = new Intent(Intent.ACTION_CALL);
                 callIntent.setData(Uri.parse("tel:" + txt_ocho.getText().toString().trim()));
                 startActivity(callIntent);
            } catch (ActivityNotFoundException activityException) {
                 Log.d("Calling a Phone Number", "Call failed" + activityException);
            }   
        }

    })
    .setNegativeButton("Cancel", null)
    .show();
 }    
});
final ArrayList<String> getContacts = new ArrayList<>();
getContacts.add(125486842);
getContacts.add(48686223174);

txt_ocho.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {

                   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                            int numOfContacts = getContacts.size();
                            builder.setItems(getContacts.toArray(new String[numOfContacts]), new DialogInterface.OnClickListener()
                            {
                                @Override
                                public void onClick(DialogInterface dialog, int which)
                                {
                                    // for bring up dial screen with phone number filled
                                    Intent intent = new Intent(Intent.ACTION_DIAL);
                                    intent.setData(Uri.parse("tel:" + getContacts.get(which)));
                                    getActivity().startActivity(intent);
                                }
                            })
                                    .setTitle("set a title")
                                    .create()
                                    .show();

                }

            });
android:autoLink="phone" 
android:linksClickable="true"