电话号码链接不可点击android

时间:2012-12-05 20:01:08

标签: java android html

x = (TextView)findViewById(R.id.xLink);
x.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            AlertDialog x = new AlertDialog.Builder(this.this).create();

            x.setMessage(Html.fromHtml(getString(R.string.text)));

            x.setButton(AlertDialog.BUTTON_NEUTRAL, "Ok", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });

            x.show();

            return false;
        }
    });


  <TextView
    android:id="@+id/xLink"
    android:text="Click"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/blue1"
    android:paddingTop="30dip"
    android:paddingRight="10dip"
    android:layout_gravity="right"
    android:textSize="16dip" />

 <string name = "text">at&lt;br /&gt;&lt;a href="tel:18004455667"&gt;1-800-445-5667 lt;/a&gt;.</string>

所以基本上当您单击链接时会出现一个对话框,其中的数字似乎是一个链接,但是当您单击时,它什么都不做。这可能发生的任何原因?我已经尝试过更改w / out ascii字符,但什么也没做/

3 个答案:

答案 0 :(得分:1)

我认为HTML锚是个问题,特别是如果您没有将资源text设置为fromHTML(),如下所示:textView.setText(HTML.fromHTML(getString(R.string.text)));

点击电话号码的最简单方法是autoLink和直接文字:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoLink="phone"
    android:text="My Number: 1-800-762-2035"
     />

答案 1 :(得分:0)

请尝试阅读以下文档:

http://developer.android.com/reference/android/text/util/Linkify.html

您可能需要清理文字,因为周围的垃圾可能导致问题。

答案 2 :(得分:0)

这是你的答案,经过测试。

public class MainActivity extends Activity {

    private AlertDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AlertDialog.Builder builder = new Builder(MainActivity.this);

        Spanned message = Html.fromHtml(getString(R.string.text));
        final SpannableString str = new SpannableString(message);
        Linkify.addLinks(str, Linkify.ALL);

        builder.setMessage(str);

        builder.setPositiveButton("OK", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                dialog.dismiss();
            }
        });

        dialog = builder.create();

        TextView t = (TextView) findViewById(R.id.textView1);
        t.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                dialog.show();

                // This must be called after dialog.show();
                ((TextView)dialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());

                return false;

            }
        });


    }

}