当用户点击带有android:autoLink =“phone”的文本框时应用程序崩溃

时间:2011-05-25 03:34:27

标签: android

因此,我将TextView的属性设置为突出显示手机。当我点击手机时,我得到了这个:

ERROR/AndroidRuntime(4853): FATAL EXCEPTION: main
        android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
        at android.app.ContextImpl.startActivity(ContextImpl.java:624)
        at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
        at android.text.style.URLSpan.onClick(URLSpan.java:62)
        at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
        at android.widget.TextView.onTouchEvent(TextView.java:6863)
        at android.view.View.dispatchTouchEvent(View.java:3885)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1691)
        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125)
        at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675)
        at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194)
        at android.view.ViewRoot.handleMessage(ViewRoot.java:1878)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:130)
        at android.app.ActivityThread.main(ActivityThread.java:3683)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
        at dalvik.system.NativeStart.main(Native Method)

我认为这可能与我的Activity实现我的BaseActivity(抽象类)这一事实有关。但是我该如何解决这个问题呢?其他一切似乎都运转得很好。

2 个答案:

答案 0 :(得分:0)

link可能会有所帮助。它基本上建议您尝试使用不属于您当前所在活动的上下文来启动活动。(或者,或者您不在活动中...)

答案 1 :(得分:0)

我想你想点击那个号码打个电话吗?

然后为此目的,您可以将其作为:

String uri = "tel:" + phoneNo.trim() ;    //phoneNo is String variable which contains your no
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);