2014-05-08 3 views
19

मैंने पढ़ा एपीआई और देखते हैं कि TextViewEditText करने के लिए एक सुपर वर्ग है, लेकिन मैं एक संक्षिप्त और सरल सवाल है: सामान्यतया, EditText जब पाठ प्रदर्शित अधीन है परिवर्तित करने के लिए प्रयोग किया जाता है, चाहे वह उपयोगकर्ता से है या ऐप। TextView का उपयोग तब किया जाता है जब प्रदर्शित पाठ हमेशा के लिए स्थिर/समान होता है। क्या ये सही है?EditText बनाम TextView

+0

हाँ, यह सही है पाठ दिखाने के लिए TextField है। अक्सर आप केवल एक संकेत के साथ एडिटटेक्स्ट रिक्त छोड़ देंगे, और उपयोगकर्ता को पूरे टेक्स्ट को भरने दें। – Dyrborg

+0

जब टेक्स्ट बदलना है तो मैं टेक्स्टव्यू का उपयोग करता हूं। उपयोगकर्ता इनपुट की अपेक्षा करते हुए संपादित करें देखें। ब्याज की बात है, सबकुछ एक दृश्य है, इसलिए कभी-कभी मैं ऑनक्लिक ईवेंट के साथ टेक्स्टव्यू का उपयोग बटन के रूप में करता हूं जब आवश्यकता वारंट (छोटे बटन जिन्हें संस्करणों में लगातार दिखने की आवश्यकता होती है, कॉम्बो या टॉगल बटन सिमुलेट करते हैं)। मैं बस वही ढाल लागू करता हूं जो मैं अपने बटन पर उपयोग करता हूं और वे वही दिखते हैं। – Gravitoid

उत्तर

7

आप किसी भी जावा परियोजनाओं से पहले किया है, मैं देख रहा हूँ Textview और EditText सिर्फ JLabel और JtextField रूप में एक ही कर रहे हैं। यदि आप उपयोगकर्ता नाम दर्ज करने के लिए उपयोगकर्ता से पूछना चाहते हैं तो आप इसमें टेक्स्टव्यू ("उपयोगकर्ता नाम" टेक्स्ट के साथ सेट करेंगे, जैसे आप जेएलएबल के लिए भी ऐसा करेंगे)। और फिर आप उपयोगकर्ता नाम दर्ज करने के लिए टेक्स्टबॉक्स बनाते हैं जो टेक्स्टबॉक्स EditText है। एडिटटेक्स्ट वह जगह है जहां उपयोगकर्ता प्रोग्राम के लिए अपना इनपुट देते हैं।

उपयोगकर्ता TextView में कुछ नहीं बदल सकते लेकिन कार्यक्रम (उपयोगकर्ता इनपुट सही उपयोगकर्ता नाम के बाद आप पाठ एक और TextView के लिए कार्यक्रम हुए कहा कि "विवरण को सही" अगर आप चाहते हैं कि आप अपने प्रोग्राम कोड में लिखने के लिए है कि द्वारा निर्धारित कर सकते हैं कर सकते हैं। उपयोगकर्ता इसे प्रकट नहीं कर सकता है)। उपयोगकर्ता किसी भी उपयोगकर्ता नाम को इनपुट कर सकता है, लेकिन "उपयोगकर्ता नाम" टेक्स्टफील्ड या TextView सामान्य लॉगिन इंटरफ़ेस की तरह "उपयोगकर्ता नाम" के रूप में अपरिवर्तित रहेगा।

1

संपादन टेक्स्ट का उपयोग तब किया जाता है जब आप उपयोगकर्ता से इनपुट की अपेक्षा करते हैं। EditText उपयोगकर्ता इनपुट (प्रदर्शन कीबोर्ड, पेस्ट, स्थिति संकेतक, आदि) के लिए व्यवहार प्रदान करता है।

यदि आपका ऐप प्रदर्शित करने के लिए सामग्री को बदल रहा है, तो आप टेक्स्ट व्यू के लिए टेक्स्ट को रीसेट कर सकते हैं। हालांकि उपयोगकर्ता इसके साथ गड़बड़ नहीं कर सकता है।

9

संपादन टेक्स्ट का उपयोग उपयोगकर्ता इनपुट के लिए किया जाता है।

टेक्स्ट व्यू टेक्स्ट प्रदर्शित करने के लिए उपयोग किया जाता है और उपयोगकर्ता द्वारा संपादन योग्य नहीं है। TextView किसी भी समय प्रोग्रामेटिक रूप से अद्यतन किया जा सकता है।

2

उनके नाम सुंदर आत्म व्याख्यात्मक हैं। टेक्स्टव्यू विजेट होता है जब आप चाहते हैं कि उपयोगकर्ता टेक्स्ट (जैसे लेबल, इत्यादि) और एडिटटेक्स्ट का उपयोग करे, जब आप उपयोगकर्ता को टेक्स्ट संपादित करने में सक्षम होना चाहते हैं। किसी भी विजेट में पाठ को android:text पैरामीटर का उपयोग करके प्रोग्रामेटिक रूप से या xml के माध्यम से सेट किया जा सकता है।

documentation काफी रकम इसे:

EditText is a thin veneer over TextView that configures itself to be editable.

0

टेक्स्ट व्यू दूसरी ओर HTML के लेबल टैग की तरह है Edittext इनपुट प्रकार है।

सरल कहानियां टेक्स्टव्यू उपयोगकर्ता द्वारा परिवर्तनीय नहीं है। उपयोगकर्ता केवल मूल्य दर्ज करें।

+1

यह एक खराब तुलना है - एक HTML लेबल बहुत अधिक है - यह हमेशा एक फॉर्म तत्व से संबंधित होता है (यदि आप किसी लेबल पर क्लिक करते हैं, तो लिंक किया गया तत्व केंद्रित है) ... – Alexander

0

EditText पाठ इनपुट के लिए इनपुट प्रकार/फील्ड है

TextView

+1

टेक्स्टव्यू दस्तावेज़ीकरण से सही नहीं है: उपयोगकर्ता को टेक्स्ट प्रदर्शित करता है और वैकल्पिक रूप से उन्हें इसे संपादित करने की अनुमति देता है ._ [लिंक] http://developer.android.com/reference/android/widget/TextView.html – silva96