2011-11-07 55 views
2

我正在开发具有电话号码的联系人页面的Android应用程序。我给在下面的XML文件中的电话号码:Android电话号码活动中的呼叫功能

<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”方法中实现“拨打电话号码”功能。请帮助我如何使用SampleCode/Links将xml文件中存在的号码拨到DialPad上。

回答

12

也许是这样的:

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

完全正确....工作正常...感谢分享.... –

+1

你也可能希望在/res/values/strings.xml中有这样的电话号码:' 1-869-270-9099'并在你的TextView上'。然后只要你需要代码中的数字,就调用'getResources()。getString(R.string.phone_num)'。 通过这种方式,维护应用程序和更改电话号码变得更加容易,因为您只需要将其从strings.xml中更改并自动更新到应用程序需要它的任何位置。 –

0

的积极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"/> 
0

您可以照片直接发动意图让在你的XML file.Like此提到的数字拨号键盘:

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