2016-06-02 8 views
1

Ich verwende WebView, um ein Formular aus Google Docs in Android aufzurufen. Wenn ich es auf meinem Emulator und Telefon starte, können alle CheckBox nicht angeklickt werden. Bitte helfen Sie. Ich hoffe, du kannst es herausfinden. Vielen Dank.So verwenden Sie Google Forms in Android

Hier ist meine Aktivitätsklasse

package com.example.nevigrof.ymuc; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class SurveyForm extends Activity { 
    private class MyWebViewClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
     } 
    } 
    WebView webview; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_survey_form); 

     webview = (WebView) findViewById(R.id.webview1); 
     webview.setWebViewClient(new MyWebViewClient()); 
     openURL(); 
    } 

    private void openURL() { 
     webview.loadUrl("thegoogleformiwanttobrowse"); 

    webview.requestFocus(); 

    } 
} 

Hier ist mein Layout xml.

Antwort

0

Verwenden Sie den Anforderungsfokus, um in das Webview klicken zu können.

webview.requestFocus(View.FOCUS_DOWN); 
0

hoffe, das hilft, können Sie versuchen:

android:focusable="true" in Ihrem Webview Layout

hinzufügen Webview.requestFocus(View.FOCUS_DOWN|View.FOCUS_UP);

EDIT hinzufügen: Wenn zwei Lösungen sind immer noch nicht funktioniert, dann versuchen:

webview.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
      case MotionEvent.ACTION_UP:      
       if (!v.hasFocus()) { 
        v.requestFocus(); 
       } 
       break; 
     }    
     return false; 
    } 
}); 

oder

webview.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
     case MotionEvent.ACTION_UP: 
      v.requestFocusFromTouch(); 
      break; 
    }    
    return false; 
} 
}); 
+0

ich es tat vor einer Weile Sir, aber immer noch seine nicht anklickbar –

+0

Danke Sir, aber ich es nicht verstehen, wo ich diesen Code setzen Ich habe es in meine Codes eingefügt, aber es gibt mir Fehler. –

+0

immer noch nicht funktioniert sir –

0

Sie sollten Sie Javascript in Ihrem Webansicht aktivieren:

webview.getSettings().setJavaScriptEnabled(true); 
+0

danke mein Herr, das war mein Fehler, danke nochmal Sir für die Erinnerung. es hilft sehr. –

+0

Gern geschehen! Bitte markieren Sie die Antwort als akzeptiert, wenn es Ihnen geholfen hat. – jomartigcal

+0

Erledigt, aber es sagt: Sobald ich 15 Reputation verdiene, werden meine Stimmen angezeigt. vielleicht bin ich nur ein neuer Benutzer. –