0

在我的字符串中,我需要找到链接和电话号码,然后需要通过下划线来更改它,比如需要的链接。

在这个我需要找到号码,如果有号码则需要打开拨号器。如果有链接需要在浏览器中打开。

例如:-

String myString ="Please check the link www.google.com sadsd asdasd asd. Call us xxx-xxx-xxxx asd asdbsd sdasd"

在那个 www.google.com 应该在浏览器中打开并在电话号码中打开号码。

4

2 回答 2

1

查找电话号码 在字符串中查找电话号码

对于下划线android:如何在字符串中添加下划线

为日报

添加清单

<uses-permission android:name="android.permission.CALL_PHONE" />

通话按钮

Button callButton = (Button)findViewById(R.id.btnCall);
txtPhn = (EditText)findViewById(R.id.txtPhnNumber);
callButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        try {
                Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:"+txtPhn.getText().toString()));
                startActivity(callIntent);
            } catch (ActivityNotFoundException activityException) {
                Log.e("Calling a Phone Number", "Call failed", activityException);
            }
    }
});

尝试这个

 <Button
android:id="@+id/btnview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"

 />

在班上

Button btn = (button)findViewbyid(R.id.btnview);
btn.setText("YOUR Phone number");
btn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
 Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:"+btn.getText().toString()));
                startActivity(callIntent);
            } catch (ActivityNotFoundException activityException) {
                Log.e("Calling a Phone Number", "Call failed", activityException);
            }

                }
            });
于 2013-10-09T07:01:28.220 回答
0

我找到了解决方案。

我们需要使用 spannalbe。

String [] parts = textViewText.split(" ");
StringBuilder strtextViewBuiler = new StringBuilder();
for(String items:parts){
if(items.startsWith("http://") || (items.startsWith("https://")) || (items.startsWith("www."))) {
        if(items.contains("<")){
            items = items.substring(0, items.indexOf("<"));
        }
        strtextViewBuiler .append(items+" ");
    }
    else if(items.contains("<http://")){
        int startIndex = items.indexOf("<http://");
        int endIndex = items.indexOf(">");
        String replacement = "";
        String toBeReplaced = items.substring(startIndex, endIndex+1);

        items = items.replace(toBeReplaced, replacement);
        strtextViewBuiler .append(items+" ");
    }
    else if(items.contains("<https://")){
        int startIndex = items.indexOf("<https://");
        int endIndex = items.indexOf(">");
        String replacement = "";
        String toBeReplaced = items.substring(startIndex, endIndex+1);                           
        items = items.replace(toBeReplaced, replacement);
        strtextViewBuiler .append(items+" ");
    }
    else{
        strtextViewBuiler .append(items+" ");
    }                               
}
mtextView.setMovementMethod(LinkMovementMethod.getInstance());
mtextView.setText(setSpannablePropertyForDescription(strtextViewBuiler .toString()), BufferType.SPANNABLE);
于 2013-10-14T08:15:09.860 回答