others - 在一个字符串中,Android查找电话号码或者链接

  显示原文与译文双语对照的内容
96 2

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

我需要找到数字,如果有数字,那么它需要打开拨号程序。 如果有链接需要在浏览器中打开。

例如。"。"。


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

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

时间: 原作者:

143 3

查找电话号码查找字符串中的电话号码。

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

用于 dailer

添加 menifest


<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);
 }

 }
 });

原作者:
66 3

我找到了解决方案。

我们需要使用 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);

原作者:
...