1
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>

したがって、基本的にリンクをクリックするとダイアログが表示され、リンクのように見える番号が表示されますが、クリックしても何もしません。これが起こっている理由は何ですか?私はすでにASCII文字なしで変更しようとしましたが、何もしませんでした/

4

3 に答える 3

1

text特に次のようにリソースを設定しなかった場合は、HTML アンカーが問題であると思います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"
     />
于 2012-12-05T20:09:41.187 に答える
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;

            }
        });


    }

}
于 2012-12-05T21:38:25.343 に答える
0

次のドキュメントを読んでみてください。

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

テキストの周りのゴミが問題を引き起こしている可能性があるため、テキストをクリーンアップする必要がある場合があります。

于 2012-12-05T20:15:44.067 に答える