当警报框弹出包含webview时,键盘不显示

时间:2016-02-06 18:26:25

标签: android webview android-softkeyboard

我正在尝试制作一个弹出的警告框,并显示一个用户可以登录查看其电子邮件的webview。警报框工作正常,正在显示网页。问题是当我想输入mu电子邮件地址时,没有输入键盘输入。

请帮助或建议我替代方法。

警报框的代码:



gmail.setOnClickListener(new OnClickListener()  
	     {  
	         @Override  
	         public void onClick(View v)  
	         {  
	        	 
	        	 
	        	 AlertDialog.Builder alert = new AlertDialog.Builder(RegisterActivity.this); 
	        	 alert.setTitle("Check Gmail");

	        	 WebView wv = new WebView(RegisterActivity.this);
	        	 
	        	 wv.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;
	     			}
	             });
	        	 
	        	 wv.loadUrl("https://mail.google.com");
	        	 wv.setWebViewClient(new WebViewClient() {
	        	     @Override
	        	     public boolean shouldOverrideUrlLoading(WebView view, String url) {
	        	         view.loadUrl(url);

	        	         return true;
	        	     }
	        	 });

	        	 alert.setView(wv);
	        	 alert.setNegativeButton("Close", new DialogInterface.OnClickListener() {
	        	     @Override
	        	     public void onClick(DialogInterface dialog, int id) {
	        	         dialog.dismiss();
	        	     }
	        	 });
	        	 alert.show();
	         }  
	     }); 




请求XML代码:



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mohalogin.RegisterActivity"
    android:background="@drawable/register" >
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter your name" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextName" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Choose your username" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextUserName" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Choose your password" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:id="@+id/editTextPassword" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter your email" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:id="@+id/editTextEmail" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Register"
        android:id="@+id/buttonRegister" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="Already Registered" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Login"
        android:id="@+id/buttonLogin" />
    
    <LinearLayout android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="25dp">
        
        <Button
        android:id="@+id/googleMail"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/gmail"/>
        
        <Button 
        android:id="@+id/yahooMail"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/yahoo"/>
        
        
    </LinearLayout>

</LinearLayout>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

查看此question,这是相对答案。

希望这会对你有帮助!!!

答案 1 :(得分:0)

您需要为网络视图添加焦点。

只需更新如下。

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

希望这能解决您的问题。