WebView InputType NULL

  • 7 Antworten
  • Letztes Antwortdatum
T

titzi266

Stamm-User
75
Hi,

ist es möglich in einer WebView das KeyBoard zu deaktivieren?
In einer etwas blöd programmierten Seite wird auch im Standard Android Browser immer das KeyBoard mit jedem Klick geöffnet.

Meine WebView sieht so aus:

Code:
        WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setSupportZoom(true);
        myWebView.setVerticalScrollBarEnabled(true);
        myWebView.setWebViewClient(new WebViewClient()); 
        android.webkit.WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.loadUrl(url);

Wie deaktiviere ich nun innerhalb dieser WebView komplett das Keyboard?

Alles was ich gefunden habe funktioniert nur bei TextBoxen.

Jemand eine Idee?
 
Keiner eine Idee? :(
 
Ist es vielleicht möglich für eine gesamte Activity die Tastatur zu deaktivieren?
Würde mir auch schon helfen.
Müsste aber auch während der Laufzeit veränderbar sein. Also über die Manifestdatei wäre wahrscheinlich keine gute Lösung.
 
Hm, danke schon mal für den Tipp. Leider funktioniert es nicht.
Jedenfalls nicht so:

Code:
        WebView myWebView = (WebView) findViewById(R.id.webview);
        
      	InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
      	imm.hideSoftInputFromWindow(myWebView.getWindowToken(), 0);
        
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setSupportZoom(true);
        myWebView.setVerticalScrollBarEnabled(true);
        myWebView.setWebViewClient(new WebViewClient()); 
        android.webkit.WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(js);
        myWebView.loadUrl(url);

Mache ich irgendwas falsch?
 
Hm, sollte eigentlich funktionieren ...

Vielleicht den InputMethodManager raus und hiermit versuchen:
Code:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

/e: Hier eine größere Diskussion dazu: http://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard - hatte ich in meinen Bookmarks, weil das Keyboard gerne Probleme macht ...
 
Leider auch nicht.

Habe jetzt folgendes:

Code:
	this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
      	
        WebView myWebView = (WebView) findViewById(R.id.webview);   
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setSupportZoom(true);
        myWebView.setVerticalScrollBarEnabled(true);
        myWebView.setWebViewClient(new WebViewClient()); 
        android.webkit.WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(js);
        myWebView.loadUrl(url);

Keyboard geht auf.
Vielleicht noch als Hinweis. Ich teste mit google.com als Seite und klicke in die TextBox der Google suche.

Deinen Link schaue ich mir noch an.
 
So habe nun folgendes gebaut:

Code:
public boolean onTouch(View v, MotionEvent event) {
			// TODO Auto-generated method stub
	    if (v.getId() == R.id.webview && event.getAction() == MotionEvent.ACTION_DOWN){
	    	handler.sendEmptyMessageDelayed(CLICK_ON_WEBVIEW, 500);
	    }
			return false;
		}

		public boolean handleMessage(Message msg) {
			// TODO Auto-generated method stub
		    if (msg.what == CLICK_ON_WEBVIEW){
		        WebView myWebView = (WebView) findViewById(R.id.webview);
		    	InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
		        imm.hideSoftInputFromWindow(myWebView.getWindowToken(), 0);
		        
		    	
		    	Toast.makeText(MainActivity.this, R.string.Tkboff, Toast.LENGTH_SHORT).show();
		        return true;
		    }
			return false;
		}

Dadurch wird die Tastatur zwar eingeblendet aber sofort wieder ausgeblendet. Nicht schön aber es funktioniert erstmal.

Leider wird sobald ich in der WebView gescrollt habe und dann klicke (auf eine TextBox in der Webseite) die Tastatur wieder komplatt dargestellt.
Wenn ich auf einen Link in der WebView klicke und eine neue Seite in der WebView geladen wird, wird schon beim ersten klick auf dieser neuen Seite die Tastatur eingeblendet. :(

Hat jemand Ideen?
 
Zuletzt bearbeitet:
Zurück
Oben Unten