android无法解析方法'startsWith(java.lang.string)'
问题描述:
所以我创建了一个android应用程序,它打开用户输入的任何网站。我用下面的代码来实现这一目标:android无法解析方法'startsWith(java.lang.string)'
public class MainActivity extends AppCompatActivity {
private EditText url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
url = (EditText) findViewById(R.id.txtbox_website);
}
public void open(View view){
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url.getText().toString()));
startActivity(browserIntent);
}
}
但是,当我有这样的代码:
if (!url.startsWith("http://") && !url.startsWith("https://")) {
url = "http://" + url;
}
检查字符串以HTTP或HTTPS开头或不,我得到一个错误。 错误是这样的:
无法解决方法
startsWith(java.lang.string)
。
我在这里错过了什么?
答
startsWith()
是String s
方法,您正在使用它在EditText
。要解决这个问题,你必须得到文本:
String urlText = url.getText().toString();
if (!urlText.startsWith("http://") && !urlText.startsWith("https://")) {
urlText = "http://" + url;
}
答
这个工作正常,我
String linkUrl;
if (url.startsWith("http://")) {
linkUrl = url;
} else if (url.startsWith("https://")) {
linkUrl = url;
} else {
linkUrl = "http://" + url + "";
}
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl));
startActivity(i);
谢谢@Luiz费尔南多萨尔瓦特拉。但是现在在url =“http://”+ url;我得到一个错误:不兼容的类型必需:android.widget.EditText发现:java.lang.String –
@ Jeet.Deir我编辑答案,检查这一个。 –
非常感谢。有效! –