如果我有一个嵌套在ScrollView中的RelativeLayout,我如何在TextView中创建一个链接

时间:2014-12-03 00:16:41

标签: android eclipse scrollview relativelayout

我正努力让我的链接在Android应用程序中可点击。我尝试过以下方法:

<ScrollView
<RelativeLayout
<TextView
    ...
    android:id="@+id/textView"
    android:text="@string/stringName"
    android:linksClickable="true"
    android:autoLink="web"

使用

<string name="stringName"><a href="http://www.example.com">String</a></string>

<string name="stringName">&lt;a href="http://www.example.com">String&lt;/a></string>

同时也纳入

((TextView) findViewById(R.id.textView)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView) findViewById(R.id.textView)).setText(Html.fromHtml(getResources().getString(R.string.stringName)));

在我的.java

编辑:我可以使用我的string.xml文件中的前一个方法使我的字符串显示为可点击,但是,当我点击它时没有任何反应。我相信这是因为我点击了relativeLayout,甚至更可能是ScrollView而不是TextView

3 个答案:

答案 0 :(得分:0)

这对我有用:

TextView text1 = (TextView)findViewById(R.id.textView);

Spanned spanned = Html.fromHtml(getString(R.string.stringName));
text1.setMovementMethod(LinkMovementMethod.getInstance());
text1.setText(spanned);

我的strings.xml,最后更改为>

替换&gt;
<string name="stringName">&lt;a href="http://www.example.com"&gt;>String&lt;/a&gt;</string>

答案 1 :(得分:0)

我不太确定在scrollView中嵌入TextView使其无法点击,但您始终可以在代码中单击TextView。 你在TextView上设置一个OnClickListener,并在里面启动一个新的Intent:

首先给ScrollView充气并在代码中获取textView,如下所示:

ScrollView layout = (ScrollView) ScrollView.inflate(this, R.layout.campaign_info_layout, null);
TextView textView = (TextView) layout.findViewById(R.id.textView);

然后像这样设置OnClickListener;

textView.setOnClickListener(new OnClickListener (){
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
                startActivity(i);
            }
        });

答案 2 :(得分:0)

这项工作对我来说:

<string name="stringName"><a href="http://www.example.com">String</a></string>


TextView TextView=(TextView)findViewById(R.id.textView);
TextView.setMovementMethod(LinkMovementMethod.getInstance());

在Xml文件中:

Remove this two lines from TextView
android:linksClickable="true"
android:autoLink="web"