在我的字符串中,我需要找到链接和电话号码,然后需要通过下划线来更改它,比如需要的链接。
在这个我需要找到号码,如果有号码则需要打开拨号器。如果有链接需要在浏览器中打开。
例如:-
String myString ="Please check the link www.google.com sadsd asdasd asd. Call us xxx-xxx-xxxx asd asdbsd sdasd"
在那个 www.google.com 应该在浏览器中打开并在电话号码中打开号码。
在我的字符串中,我需要找到链接和电话号码,然后需要通过下划线来更改它,比如需要的链接。
在这个我需要找到号码,如果有号码则需要打开拨号器。如果有链接需要在浏览器中打开。
例如:-
String myString ="Please check the link www.google.com sadsd asdasd asd. Call us xxx-xxx-xxxx asd asdbsd sdasd"
在那个 www.google.com 应该在浏览器中打开并在电话号码中打开号码。
查找电话号码 在字符串中查找电话号码
对于下划线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);
}
}
});
我找到了解决方案。
我们需要使用 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);