2017-06-28 10 views
0

G'day! 私は昨日、文字通りプログラミングを始めました。そして、私はwebviewベースのアプリに含めることを望む@Overrideスニペットで立ち往生しています。Javaコードのスーパークラスエラー

問題は、アンドロイドブラウザが "tel:"リンクを認識していないようです。それを解決するために、最後にオーバーライドを追加しました。 提案がありますか? @Override

おかげ

package com.example.app; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.net.Uri; 
import android.content.Intent; 


public class MainActivity extends Activity { 


private WebView mWebView; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    mWebView.setWebViewClient(new WebViewClient()); 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("file:///android_asset/index.html"); 
} 
@Override 
public void onBackPressed() { 
    if (mWebView.canGoBack()) { 
     mWebView.goBack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
@Override 
public boolean shouldOverrideUrlLoading(WebView webview, String url) 
{ 
    if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mms:") || url.startsWith("mmsto:")) 
    { 
     Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); 
     startActivity(intent); 
     return true; 
    } 
    return false; 
} 
} 
+0

ここで問題が何であるか分かりません...エラー/問題点について詳しく説明してください。 「アンドロイドブラウザ」とはどういう意味ですか? – Lemonov

+0

"何か提案がありますか?"あなたが直面している実際の問題を私たちに伝えることは良いことです。コンパイラのエラーメッセージが表示されますか?プログラムを実行する際の例外はありますか?それとも、あなたが望むようにリンクが表示されないのは本当ですか? –

+0

エラーコード: エラー:(64,5)エラー:メソッドがオーバーライドされないか、スーパータイプのメソッドを実装しません 最後の@によって引き起こされたオーバーライド –

答えて

1

事はあなたがスーパークラスからメソッドをオーバーライドするときにのみ、それを使用すべきであるということです。この場合、アクティビティを拡張します。ここで上書きを使用するには、Activityにそのメソッドが必要です。 @Overrideを削除して、onCreateでこのメソッドを呼び出すだけです。

+0

助けてくれてありがとう! –