2017-04-10 16 views
-3

したがって、ユーザーが入力したウェブサイトを開くアンドロイドアプリケーションを作成しています。私はこれを達成するために、次のコードを使用します。アンドロイドはメソッド '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()あなたはEditTextでそれを使用している、String s方法です。これは私のために正常に動作

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); 
関連する問題