2017-06-28 3 views
0

G'day! Ich habe gestern mit dem Programmieren begonnen und bin jetzt bei einem @Override Snippet stecken geblieben, das ich in eine webviewbasierte App einbinden möchte.Java-Code Superklassenfehler

das Problem ist, dass Androids Browser scheint nicht zu erkennen "Tel:" - Links. Um das zu lösen, habe ich am Ende eine Überschreibung hinzugefügt. Irgendwelche Vorschläge?

Dank

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

Keine Ahnung, was ist das Problem hier ... Bitte genauer sein, was ist ein Fehler/Problem. Was meinst du mit "Android-Browser"? – Lemonov

+0

"Irgendwelche Vorschläge?" <- sagen Sie uns, das eigentliche Problem, das Sie haben, wäre gut. Erhalten Sie eine Fehlermeldung comiler? Eine Ausnahme beim Ausführen des Programms? Oder werden die Links nicht so angezeigt, wie Sie es möchten? –

+0

wenn ich den Code ausführen möchte, erhalte ich den Fehler Fehler: (64, 5) Fehler: Methode überschreibt nicht oder implementiert eine Methode von einem verursacht durch den letzten @Override –

Antwort

1

Die Sache mit @Override ist, dass Sie nur, wenn Sie überschreiben eine Methode aus der Oberklasse verwendet werden soll. In diesem Fall erweitern Sie die Aktivität. Um hier Überschreiben zu verwenden, muss Aktivität diese Methode haben. Sie sollten nur die @Override entfernen und diese Methode in Ihrem onCreate aufrufen.

+0

danke das hat geholfen! –

Verwandte Themen