2010-01-07 9 views
25

मैं एक फोन इनपुट और स्ट्रिंग को छिपाने की क्षमता दोनों के साथ एडिटेक्स्ट कैसे प्राप्त करूं। मुझे पता है किएडिटेक्स्ट फोन नंबर इनपुट के साथ पासवर्ड के लिए सेट? (एंड्रॉइड)

android:inputType="textPassword" 

छुपाता स्ट्रिंग, जबकि

android:inputType="phone" 

एक डायलपैड इंटरफेस को लाता है।

दोनों को कैसे गठबंधन करें?

उत्तर

33

android:password हटाई गई है, लेकिन AFAIK एक ही तरीका है क्योंकि android:inputType="phone|textPassword" पर ध्यान नहीं दिया है ...

<EditText 
    android:id="@+id/EditText01" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:password="true" 
    android:inputType="phone" /> 
+0

आह, दिलचस्प। मैंने नहीं देखा था कि यह बहिष्कृत है। यहां दिए गए दस्तावेज़ों का उल्लेख है कि 'इनपुट टाइप' जाने का तरीका है (रोमन उल्लेख के रूप में): http://developer.android.com/reference/android/R.attr.html#password –

+1

थोड़ा अतिरिक्त के रूप में, जो चाहता है कोड से सामान करने के लिए: editText.setInputType (इनपुट टाइप .YPE_CLASS_PHONE); संपादित करेंext.setTransformationMethod (PasswordTransformationMethod.getInstance()); –

+2

inputType = "numberPassword" संभवतः सबसे अच्छा विकल्प है, लेकिन यह केवल तभी उपलब्ध है जब आपके ऐप का न्यूनतम एसडीके> = 3.0 (हनीकॉम) – k2col

0

मैं इस की कोशिश की है नहीं, लेकिन यह इतना दो तरह गठबंधन करने के लिए संभव हो सकता है:

android:inputType="textPassword|phone" 

inputType के बाद से एक से अधिक मान पर ले जा सकते हैं।

+0

यह काम नहीं करता है। EditText टेक्स्ट पासवर्ड को अनदेखा कर रहा है और बस फोन पर सेट कर रहा है – Portablejim

+1

इसके बारे में क्षमा करें, मेरा जवाब परीक्षण के बिना सिर्फ एक शिक्षित अनुमान था .. dtmilano का स्निपेट जाने का सही तरीका दिखता है। –

1

यह समस्या पदावनत का उपयोग android:password बिना हल किया जा सकता। मेरा उत्तर here देखें।

+0

आपको एंड्रॉइड कैसा लगता है: पासवर्ड काम करता है? ;) हां, यह एक्सएमएल विशेषता को हटा दिया गया है, लेकिन जब विशेषता प्रस्तुत की जाती है तो रनटाइम में कौन सा कोड निष्पादित किया जाता है? –

2

मुझे इस समस्या का कोई उचित समाधान नहीं मिला है। dtmilano का स्वीकार्य समाधान पूरी तरह से काम नहीं करता है। यदि एडिटटेक्स्ट लैंडस्केप मोड में केंद्रित है जहां आपके पास पूर्ण स्क्रीन कीबोर्ड है, तो संख्याएं अभी भी स्पष्ट टेक्स्ट में प्रदर्शित होती हैं, मास्क नहीं।

मैंने वास्तविक टेक्स्ट व्यू कोड के माध्यम से महत्वपूर्ण समय बिताया, और कारण यह एक समस्या है कि वे स्पष्ट रूप से InputType.TYPE_CLASS_TEXT के खिलाफ इनपुट टाइप की जांच कर रहे हैं और, यदि मुझे सही ढंग से याद है, TYPE_MASK_CLASS। इसलिए यदि आप उन सीमाओं के भीतर कोई अन्य इनपुट टाइप शामिल करते हैं (मुझे लगता है कि TYPE_CLASS_TEXT और TYPE_MASK_CLASS द्वारा उपयोग की जाने वाली सीमा पहली बाइट है), तो उसे मास्किंग की आवश्यकता वाले पासवर्ड के रूप में पहचाना नहीं जाएगा।

मुझे पता है कि मैंने जो कहा वह बहुत भ्रमित है। वास्तविक कोड बहुत अधिक भ्रमित है। मैं ईमानदार होने के लिए टेक्स्ट व्यू के कोड पर बहुत चिंतित था। यह हर जगह हार्ड कोडित चेक के साथ एक उलझन में गड़बड़ है। भयानक कोडिंग अभ्यास जो इस तरह की समस्याओं का कारण बनता है।

5

मुझे विश्वास है कि यह वही है जो आप चाहते हैं?

android:inputType="numberPassword" 

संपादित करें: प्रश्न (2010) इस एपीआई में नहीं किया गया है सकते हैं, लेकिन समकालीन विकास के लिए, यह उपलब्ध है के समय।

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