【问题标题】:How to handle exception while clicking link using textview in android如何在android中使用textview单击链接时处理异常
【发布时间】:2014-04-23 02:59:35
【问题描述】:

我正在开发一个 android 项目,我必须在其中添加链接,我按照下面给出的示例进行操作。但是当我单击链接时,它既没有突出显示,也无法访问该链接。单击该链接会导致异常,上面写着

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

当我点击链接时,我想在浏览器中打开链接。如何有效地做到这一点?我期待尽快得到答复!谢谢

注意:我在实际项目中使用动态文本视图

 public class StackOverflowActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TextView link = new TextView(getApplicationContext);
    String linkText = "Visit the <a href='http://stackoverflow.com'>StackOverflow</a> web page.";
    link.setText(Html.fromHtml(linkText));
    link.setMovementMethod(LinkMovementMethod.getInstance());


}

【问题讨论】:

    标签: java android hyperlink textview


    【解决方案1】:

    在您的 TextView xml 中使用 android:autoLink="web"。如果它不起作用,请尝试android:linksClickable="true"

    根据您的错误,如果使用动态 TextView,请确保您使用 this 对象引用您的视图

    TextView yourView = new TextView(this);
    

    this 指的是你的Activity 上下文,我认为你可能犯了一个小错误。

    您不应该使用getApplicationContext 创建带有Activity 上下文的视图。

    【讨论】:

    • 在我的实际项目中,我使用的是动态文本视图。用java代码怎么做?
    • 然后发布您的实际代码。你应该这样做 TextView yourDynamicView = new TextView(this); this 很重要,因为它指的是你的 Activity 上下文。
    • 你试过我的答案了吗?
    • 很高兴它有帮助 :) 感谢您接受我的回答! :D
    【解决方案2】:

    我相信您必须先扩展包含 TextView 的布局,然后才能使用它,如下所示:

    getActivity().getLayoutInflater()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      相关资源
      最近更新 更多