2014-05-07 3 views
12

हमारे पास HTML में एक बटन है। जब उपयोगकर्ता इसे क्लिक करता है, तो मेरे विशिष्ट EditText का मान बदलना चाहिए, लेकिन ऐसा नहीं होता है।जावास्क्रिप्ट के साथ EditText सामग्री को कैसे बदलें?

कोड:

class ActivityTest extends Activity { 

    TextView textView1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 

     WebView webView = (WebView) findViewById(R.id.webView); 
     webView.loadUrl("file:///android_res/raw/htmlimages.html"); 
     webView.addJavascriptInterface(new MyTest(), "Scripts"); 
     webView.getSettings().setJavaScriptEnabled(true); 
     textView1 = (TextView) findViewById(R.id.textView1); 
    } 


    public class MyTest { 

     void setText(String string) 
     { 
      textView1.setText(string); 
     } 
    } 
} 
+0

ठीक होना चाहिए, इस मुद्दे को क्या है? – esqew

+0

टेक्स्ट सामग्री संपादित नहीं बदलेगी ... – hosseinAmini

+0

यह जावास्क्रिप्ट है? – STEEL

उत्तर

1

लिए आपको JavaScript (किसी भी वेब आधारित भाषा) के साथ कुछ देशी दृश्य को बदल नहीं सकते, वहाँ जे एस के लिए कोई एपीआई है।

आप विचारों तक पहुंच नहीं सकते हैं और अपनी संपत्तियों को कम नहीं कर सकते हैं।

यदि आप जावा से अधिक वेब पर विश्वास रखते हैं तो आप वेब व्यू पर सबकुछ कर सकते हैं। अपना वेब लोड करें और लेबल दिखाएं, फिर आप जेएस के साथ सबकुछ बदल सकते हैं।

संपादित करें: बॉब कहता है कि आप इस एपीआई के साथ जेएस से तरीकों को इंजेक्ट या कॉल कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

+0

यह 100% सही नहीं है ... WebView.addJavascriptInterface देखें: http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface%28java.lang.Object ,%20java.lang.String % 2 9 – Bob9630

+0

@ बॉब 9630 आप सही हैं, मैंने अपना जवाब संपादित किया, मुझे सही करने के लिए thx, जब मैं इस प्रश्न का उत्तर दिया तो मुझे यह नहीं पता था। – Sulfkain

1

मान लें कि आपका एचटीएमएल हिस्सा सही है जो आपको करने की ज़रूरत है वह मुख्य धागे पर ui कॉल करता है।

तो अपने कोड:

void setText(String string) 
{ 
    textView1.setText(string); 
} 

@JavascriptInterface 
public void setText() { 
    runOnUiThread(new Runnable() {    
    @Override 
    public void run() { 
     textView.setText("Testing text");  
    } 
    });  
} 
संबंधित मुद्दे