2

cordova プラグインから渡すネイティブの TextView 値を変更したい。このアプリケーションは、ネイティブ要素 (TextView) と Cordova WebView の 2 つの要素を 1 つのアクティビティ レイアウトで表示します。現在のUIを更新するためにメインとフォンギャップの間でコンテキストを交換することは可能ですか...何かアイデアはありますか?...

コンセプト例 -

public class MainActivity extends Activity implements CordovaInterface{
 .....
 .....
 public void changeText(String txt){
    textView = (TextView) findViewById(R.id.textView);
    textView.setText(txt);

 }

}

Cordova プラグイン:

public class MyPlugin extends CordovaPlugin {

 public boolean execute(String action, JSONArray args, final CallbackContext callbackContext){
          if (action.equals("changeText")) {
                      ..............
                 }
  }
}

レイアウト :

<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"
    tools:context=".MainActivity" >

   <org.apache.cordova.CordovaWebView
       android:id="@+id/tutorialView"
       android:layout_width="match_parent"
       android:layout_height="196dp" />

   <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
4

1 に答える 1

2

最後にそれは機能します.... 2つの要素が重要です:

  • コルドバ コンテキスト- 以下を使用して、プラグイン クラスで textview を呼び出します。

TextView textView = cordova.getActivity().findViewById(R.id.textView);

  • スレッド- runOnUiThread を使用してコードバ プラグイン実行の変更を呼び出します

例えば:-

cordova.getActivity().runOnUiThread(new Runnable(){
 public void run() {

                textView.setText("Cordova Hello World"); 

                callbackContext.success(); 

                // Thread-safe. 

        } });
于 2013-03-06T03:49:38.477 に答える