2017-04-10 209 views
-3

所以我創建了一個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)

我在這裏錯過了什麼?

回答

2

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

非常感謝。有效! –

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); 
相關問題