2014-01-14 4 views
0

В моем приложении для просмотра веб-страниц на сайте есть текстовые поля, но нажатие на него не отображает мягкую клавиатуру. Некоторая серая цветная часть идет в нижней части дисплея и выглядит как и клавиатура, скрывает поведение .please помогите мне решить эту проблему.Нажатие текстового поля в приложении webview не показывает мягкую клавиатуру

WebActivity.java

package com.example.samworkshops; 



import android.app.Activity; 
import android.content.pm.ActivityInfo; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class WebActivity extends Activity { 
    public WebView webview; 


    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     webview = (WebView) findViewById(R.id.webview); 
     webview.setWebViewClient(new WebViewClient()); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.getSettings().setUseWideViewPort(true); 
     webview.getSettings().setLoadWithOverviewMode(true); 
     webview.loadUrl("http://app.samworkshops.org"); 

    } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     // Check if the key event was the Back button and if there's history 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
      webview.goBack(); 
      return true; 
     } 
     // If it wasn't the Back key or there's no web page history, bubble up to the default 
     // system behavior (probably exit the activity) 
     return super.onKeyDown(keyCode, event); 
    } 
} 
+0

у г проверки в эмуляторе или устройстве? –

+0

привет ответил, надеюсь, что он сработает для вас –

+0

Он работал на вас? –

ответ

0

вы можете сделать что-то вроде этого, пожалуйста, см этот обновленный ответ

webview.requestFocus(View.FOCUS_DOWN); 
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; 
    } 
}); 

пожалуйста, посетите http://code.google.com/p/android/issues/detail?id=7189

+0

не работает .... – sadab

+0

см. Этот обновленный ответ..write ontouch следующим образом ==> public boolean onTouch (просмотр v, событие MotionEvent) { переключатель (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: v.requestFocusFromTouch(); break; } return false; } –

Смежные вопросы