2011-03-07 7 views
27

मैं लेआउट main.xml से वेबव्यू पर यूआरएल सेट करने का प्रयास कर रहा हूं।एंड्रॉइड पर एक्सएमएल लेआउट फ़ाइल से WebView पर यूआरएल कैसे सेट करें?

कोड से यह सरल है:

WebView webview = (WebView)findViewById(R.id.webview); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("file:///android_asset/index.html"); 

वहाँ लेआउट xml फ़ाइल में इस तर्क रखने का एक आसान तरीका है?

+5

नाम _layout_ xml फ़ाइल पर ध्यान दें। मुझे नहीं लगता कि xml से ऐसा करने का कोई तरीका है। मैं आपका बिंदु देखता हूं, आप इसे कोड से यूआरएल लोड किए बिना डिवाइस पर डेटा के साथ लोड करने में सक्षम होना चाहते हैं, लेकिन मुझे नहीं लगता कि अब इसके लिए कोई समर्थन है। –

+0

मेरी बात देखने के लिए Cant0na पर लक्ष्य! –

उत्तर

-2

के बाद से यूआरएल मूल रूप से एक स्ट्रिंग है, तो आप इसे मान/strings.xml फ़ाइल में डाल सकता है

<resources> 
    <string name="myurl">http://something</string> 
</resources> 

तो आप इस तरह इसका इस्तेमाल कर सकते हैं:

WebView webview = (WebView)findViewById(R.id.webview); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.loadUrl(getString(R.string.myurl)); 
+33

मुझे लगता है कि वह गतिविधि में लोड लोड यूआरएल चलाने के बिना सीधे यूआरएल फ़ाइल में यूआरएल सेट करने के लिए कुछ रास्ता खोजने का प्रयास कर रहा है। पसंद: <वेबव्यू एंड्रॉइड: url = "@ string/my_url" /> –

+0

सुझाव के लिए धन्यवाद। यह यूआरएल कोड से और एक res फ़ाइल में बाहर निकलने का एक तरीका है, मैं उम्मीद कर रहा था कि मैं सीधे लेआउट xml फ़ाइल से यूआरएल कर सकता हूं, और loadUrl (...) को चलाने के लिए मजबूर नहीं किया जा सकता कोड। –

+22

यह एक चयनित उत्तर नहीं होना चाहिए। यह इस सवाल का जवाब नहीं देता है। – Rob

3

आप अपने कस्टम दृश्य घोषणा कर सकते हैं और here वर्णित कस्टम विशेषताओं को लागू करें।

परिणाम इस के समान दिखेगा: अपने लेआउट में

<my.package.CustomWebView 
     custom:url="@string/myurl" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent"/> 

अपने attr.xml में

<resources> 
    <declare-styleable name="Custom"> 
     <attr name="url" format="string" /> 
    </declare-styleable> 
</resources> 

अंत में अपने कस्टम वेब दृश्य कक्षा में

public class CustomWebView extends WebView { 

     public CustomWebView(Context context, AttributeSet attributeSet) { 
      super(context); 

      TypedArray attributes = context.getTheme().obtainStyledAttributes(
        attributeSet, 
        R.styleable.Custom, 
        0, 0); 
      try { 
       if (!attributes.hasValue(R.styleable.Custom_url)) { 
        throw new RuntimeException("attribute myurl is not defined"); 
       } 

       String url = attributes.getString(R.styleable.Custom_url); 
       this.loadUrl(url); 
      } finally { 
       attributes.recycle(); 
      } 
     } 
    } 
+3

आप अभी भी कोड का उपयोग कर रहे हैं। यह पोस्ट किए गए कोड की 3 पंक्तियों से कहीं अधिक काम है। नहीं? – TheRealChx101

+1

निश्चित रूप से, यह अधिक काम है लेकिन सवाल यह था कि यूआरएल को लेआउट परिभाषा के माध्यम से कैसे सेट किया जाए। ऐसा करने का यही एकमात्र तरीका है। – loklok

संबंधित मुद्दे

 संबंधित मुद्दे