【问题标题】:Android Phone number Calling Function in an ActivityActivity中的Android电话号码呼叫功能
【发布时间】:2011-11-07 09:42:54
【问题描述】:

我正在开发具有电话号码的 ContactUs 页面的 Android 应用程序。我在 xml 文件中给出了电话号码,如下所示:

<TextView 
android:layout_height="wrap_content" 
android:textAppearance="?android:attr/textAppearanceSmall" 
android:text="1-869-270-9099" 
android:textSize="11sp"
android:textColor="#104082"
android:textStyle="normal"
android:layout_width="wrap_content" 
android:id="@+id/textView4" 
android:layout_x="72dp" 
android:layout_y="160dp"/>

我创建了AlertDialog,当点击电话号码时,警报dialog 将以编程方式显示如下:

   @Override
   protected Dialog onCreateDialog(int id) {
    switch (id) {
    case (R.id.textView4):

        Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Do you want to Call?");
        builder.setCancelable(false);
        builder.setPositiveButton("Call", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
               //Do Calling a Number


            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
    }
    return super.onCreateDialog(id);
}
       public void onClick(View v) {

    switch(v.getId()){
    case (R.id.textView4):

        showDialog(R.id.textView4);
    break;
    }

}

这里我的问题是onClick“PositiveButton”方法中实现“拨打电话号码”功能。请帮助我如何使用@987654326 中的号码获取拨号盘@ 带有 SampleCode/Links 的文件。

【问题讨论】:

    标签: java android dialog


    【解决方案1】:

    可能是这样的:

    Intent call = new Intent(Intent.ACTION_DIAL);
    call.setData(Uri.parse("tel:" + findViewByid(R.id.textView4).getText());
    startActivity(call);
    

    【讨论】:

    • 您可能还希望在 /res/values/strings.xml 中拥有电话号码,如下所示:&lt;string name="phone_num"&gt;1-869-270-9099&lt;/string&gt; 和 TextView &lt;TextView android:text="@string/phone_num" .../&gt;。然后,只要您需要代码中的号码,只需致电getResources().getString(R.string.phone_num)。这样可以更轻松地维护您的应用程序并更轻松地更改电话号码,因为您只需从 strings.xml 更改它,并且它会在您应用程序中需要它的任何地方自动更新。
    【解决方案2】:

    在正面buttononClick里面只写:

    Intent dial = new Intent();
    dial.setAction("android.intent.action.DIAL");
    dial.setData(Uri.parse("tel:"+dial_number));
    startActivity(dial); 
    

    注意: 不要忘记在AndroidManifest.xml 文件中添加此权限:

    <uses-permission android:name="android.permission.CALL_PHONE"/>
    

    【讨论】:

      【解决方案3】:

      您可以使用 xml 文件中提到的号码直接启动一个意图来获取拨号盘。像这样:

      String contact=findViewById(R.id.textView4).getText().toString();
      Intent callIntent = new Intent(Intent.ACTION_CALL);
      callIntent.setData(Uri.parse("tel:" + contact));
      startActivity(callIntent);
      

      【讨论】:

        最近更新 更多