2016-11-06 6 views
0

私はAndroid Studio 2.1.1を使用しています。バックスペースキーでwebviewのHtmlテキスト入力でタイ語の母音が削除されない

私は、Webビューでテキストタイプの入力を持つローカルHTMLファイルを開きます。私は、ダイナミックキーボードのバックスペースキーが、子音の上または下にあるタイ語の母音を削除しないことを発見しました。ただし、EditTextビューでは、バックスペースキーはタイ語母音に問題はありません。タイ語の子音と母音の両方の文字をすべて削除します。

MainActivity.java

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final EditText simpleEditText = (EditText) findViewById(R.id.simpleEditText); 
    WebView wv = (WebView)findViewById(R.id.webview); 
    wv.loadUrl("file:///android_asset/test_input.html"); 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    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: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.thongjoon.edittext.MainActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@id/simpleText" 
    android:text="Hello World!"/> 

<EditText 
    android:id="@+id/simpleEditText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/simpleText" 
    android:hint="Enter Your Name Here" /> 
<WebView android:id="@+id/webview" 
     android:layout_below="@id/simpleEditText" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp"/> 

</RelativeLayout> 

test_input.html

<!doctype html> 
<html lang="th"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Document</title> 
    </head> 
<body> 
    ทดสอบ<input type="text" name="yourname" value="Your Name"><br> 
</body> 
</html> 

私は、Androidに新しいです。私は本当にこの問題についてどうやって行くのか分かりません。お知らせ下さい。

答えて

0

私はタイプテキストのhtml入力を使用しないことに決めました。代わりに、私はjavascript関数に変数を渡すJavaScriptInterfaceクラスを作成しました。変数はEditTextビューのものです。私はそれをボタンクリックで渡します。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    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: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.thongjoon.edittext.MainActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@id/simpleText" 
     android:text="Hello World!"/> 

    <EditText 
     android:id="@+id/simpleEditText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/simpleText" 
     android:singleLine="true" 
     android:maxLength="20" 
     android:hint="Enter Text Here" /> 
    <Button 
     android:id="@+id/btnSearch" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/simpleEditText" 
     android:text="Go"/> 

    <WebView android:id="@+id/webview" 
     android:layout_below="@+id/btnSearch" 
     android:layout_width="fill_parent" 
     android:layout_height="150dp"/> 

</RelativeLayout> 

test_input.html

<!doctype html> 
<html lang="th"> 
<head> 
    <meta charset="utf-8"> 
    <title>Document</title> 

</head> 
<body> 

    ทดสอบการส่งตัวแปรจาก Android<br> 
    Passing a variable from Android to Javascript<br> 

    <script> 
    function init(val){ 
     alert(val); 
    } 
    </script> 
</body> 

JavaScriptInterface.java

import android.content.Context; 
import android.webkit.JavascriptInterface; 

public class JavaScriptInterface { 
    Context mContext; 
    JavaScriptInterface(Context c) { 
     mContext = c; 
    } 
    @JavascriptInterface 
    public static String getFromAndroid(String myVar) { 
     return myVar; 
    } 
} 

MainActivity.java

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.WindowManager; 
import android.view.inputmethod.InputMethodManager; 
import android.webkit.WebChromeClient; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 

    String inputText; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // hide virtual keyboard. Show keyboard when user touches EditText view 
     getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN 
     ); 

     setContentView(R.layout.activity_main); 

     final EditText simpleEditText = (EditText) findViewById(R.id.simpleEditText); 
     final Button btn_search =(Button) findViewById(R.id.btnSearch); 

     final WebView webView = (WebView)findViewById(R.id.webview); 
     WebSettings settings = webView.getSettings(); 
     settings.setJavaScriptEnabled(true); 
     //for showing Javascript alert box 
     webView.setWebChromeClient(new WebChromeClient() {}); 
     webView.addJavascriptInterface(new JavaScriptInterface(this), "Android"); 
     webView.loadUrl("file:///android_asset/test_input.html"); 

     btn_search.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       //hide virtual keyboard 
       InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
         inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
      inputText = simpleEditText.getText().toString(); 
      webView.loadUrl("javascript:init('" + inputText + "')"); 
      } 
     }); 
    } 
} 

以下のリンクがありがたいです。

Passing data from java class to Web View html

Get Value of a Edit Text field How to pass a value/variable from an android java class to javascript/.html file in android 4.4.2 kitkat

Passing data from java class to Web View html

関連する問題