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; 
} 
+0

谢谢@Luiz费尔南多萨尔瓦特拉。但是现在在url =“http://”+ url;我得到一个错误:不兼容的类型必需:android.widget.EditText发现:java.lang.String –

+0

@ Jeet.Deir我编辑答案,检查这一个。 –

+0

非常感谢。有效! –

这个工作正常,我

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