दिलचस्प पोस्ट
अजाक्स का उपयोग कर सर्लेट से एक फ़ाइल डाउनलोड करें अपाचे httpd (MAMP) में http फ़ाइल कैशिंग को कैसे रोकें एंड्रॉइड स्टूडियो में मैं परीक्षण कैसे बना सकता हूं? सी ++ में परियोजना यूलर समस्याओं को हल करने के लिए सर्वश्रेष्ठ बिग्नम पुस्तकालय? एक छविदृश्य सेट करने के लिए एंड्रॉइड में दो छवियां ओवरले करें jQuery `.is (": दिखाई देता है ") 'क्रोम में काम नहीं कर रहा है एक PostgreSQL फ़ंक्शन पैरामीटर के रूप में तालिका का नाम जावा त्रुटि: तुलना विधि अपने सामान्य अनुबंध का उल्लंघन करती है एक सामान्य संरचना के निर्माता में "अपेक्षित प्रकार पैरामीटर" त्रुटि रीसाइक्वेव्यू में विज्ञापन एम्बेड करना पैगमेम में कुछ समय कैसे रुकें? डेटाफ़्रेम में नमूना यादृच्छिक पंक्तियां Android में पृष्ठभूमि में उपयोगकर्ता जीपीएस स्थान पाने का सबसे अच्छा तरीका जावा में असंख्य वाइल्डकार्ड अगर यूआरएल जावास्क्रिप्ट में टूट गया है तो जांचता है

डिफ़ॉल्ट रूप से नंबर कीपैड के साथ संपादन करें, लेकिन वर्णमाला वर्णों को अनुमति दें

मेरे पास एक संपादन टेक्स्ट बॉक्स है और मैं डिफ़ॉल्ट कुंजीपटल चाहता हूं जो कि संख्यात्मक कीपैड के रूप में चुना जाता है, क्योंकि अधिकांश समय उपयोगकर्ता नंबरों को दर्ज करेंगे हालांकि, मैं उपयोगकर्ता को वर्णानुक्रम वर्णों को भी प्रवेश करने की अनुमति देना चाहता हूं, अगर उन्हें इसकी आवश्यकता है android:inputType="number" का उपयोग करना android:inputType="number" इनपुट को केवल संख्यात्मक अंकों में प्रतिबंधित करता है। आपके पास कौन से विकल्प हैं?

Solutions Collecting From Web of "डिफ़ॉल्ट रूप से नंबर कीपैड के साथ संपादन करें, लेकिन वर्णमाला वर्णों को अनुमति दें"

यहां आप जो देख रहे हैं वह है:

अपने XML में अपने EditText को इस तरह परिभाषित करें:

 <EditText android:id="@+id/etTest" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hint"> </EditText> 

और अपने onCreate() में निम्नलिखित कॉल करें:

 etTest = (EditText) findViewById(R.id.etTest); etTest.setRawInputType(InputType.TYPE_CLASS_NUMBER); // Note the "Raw" 

जब भी आप अपने EditText पर क्लिक करेंगे, आप अंकों और अक्षरों को दर्ज कर सकते हैं! (डिजिट कीबोर्ड पहले दिखाया गया है)

मैं एक और मजबूत समाधान का सुझाव दूंगा:

उपयोगकर्ता को इनपुट प्रकार चुनने की क्षमता प्रदान करें:

आवश्यक फिक्स

इनपुट चयन बटन दिखाने / छुपाने के बेहतर संचालन

संभवतः सुझावों को हटा दें जब इनपुट प्रकार का अक्षर है

यहां छवि विवरण दर्ज करें

यहां गतिविधि है:

 package mobi.sherif.numberstexttextview; import android.os.Bundle; import android.app.Activity; import android.text.InputType; import android.view.View; import android.view.View.OnFocusChangeListener; import android.widget.EditText; public class MainActivity extends Activity { EditText mEdit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEdit = (EditText) findViewById(R.id.input); mEdit.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean focused) { findViewById(R.id.llmenu).setVisibility(focused?View.VISIBLE:View.GONE); } }); } public void onNumbers(View v) { mEdit.setInputType(InputType.TYPE_CLASS_NUMBER); } public void onLetters(View v) { mEdit.setInputType(InputType.TYPE_CLASS_TEXT); } } 

यहां गतिविधि का एक्सएमएल है: activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ScrollView android:id="@+id/scrollview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignWithParentIfMissing="true" android:layout_above="@+id/llmenu" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/input" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" > <requestFocus /> </EditText> </LinearLayout> </ScrollView> <LinearLayout android:id="@+id/llmenu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="#000000" android:padding="0dp" > <Button android:id="@+id/buttonnumbers" android:layout_width="0dp" android:onClick="onNumbers" android:layout_height="match_parent" android:layout_weight="1" android:text="Numbers" /> <Button android:id="@+id/buttonletters" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:onClick="onLetters" android:text="Letters" /> </LinearLayout> </RelativeLayout> 

दुर्भाग्य से यह संभव नहीं है, क्योंकि केवल एक इनपुट टाइप एक EditText के लिए सेट किया जा सकता है। निम्नलिखित बटन पर बस अक्षर वर्ण दिखाएंगे।

 <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="text|number" /> 

हालांकि, मैं क्या सुझाव दे सकता हूं कि आप अपने इनपुट प्रकार को न्यूमेरिक में सेट करते हैं, और अपने फॉर्म पर नंबिप्ड के करीब एक छोटा स्विच कुंजीबोर्ड बटन जोड़ें। और इसकी पर क्लिक करेंक्लिक करें

 editText1.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

ताकि उपयोगकर्ता भी वर्णानुक्रमिक वर्णों पर स्विच कर सकें।

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

android:inputtype लिए संभावित मूल्य android:inputtype हैं:

  • टेक्स्ट
  • textCapCharacters
  • textCapWords
  • textCapSentences
  • textAutoCorrect
  • textAutoComplete
  • textMultiLine
  • textImeMultiLine
  • textNoSuggestions
  • Texturi
  • textEmailAddress
  • textEmailSubject
  • textShortMessage
  • textLongMessage
  • textPersonName
  • textPostalAddress
  • textPassword
  • textVisiblePassword
  • textWebEditText
  • textFilter
  • textPhonetic
  • संख्या
  • numberSigned
  • numberDecimal
  • फ़ोन
  • दिनांक समय
  • तारीख
  • पहर

तो आप उदाहरण के रूप में दिखाए गए किसी मूल्य का उपयोग कर सकते हैं:

 <EditText android:id="@+id/EditText01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:inputType="number" android:text="1212223"/> 

एसस टैबलेट में यह सुविधा है, उन्होंने डिफ़ॉल्ट कुंजीपटल को अनुकूलित किया है। और कीबोर्ड में केवल संख्याएं और वर्णमालाएं हैं मुझे लगता है कि आपकी आवश्यकता समाधान भी डिफ़ॉल्ट कीबोर्ड को अनुकूलित करना है

अपने XML में अपने संपादन टेक्स्ट को इस तरह परिभाषित करें:

 <EditText android:id="@+id/txtOppCodigoCliente" android:inputType="textVisiblePassword" android:layout_width="match_parent" android:layout_height="match_parent" android:maxLength="11" android:hint="@string/strCodigoCliente"/> 

आउटपुट: एंड्रॉइड: inputType = "textVisiblePassword"

संख्याओं की एक पंक्ति और बाकी अक्षर

आप परेश मयनी के उत्तर का पालन कर सकते हैं।

और सलाह में आप android:inputType="textPhonetic" उपयोग कर सकते हैं android:inputType="textPhonetic" इनपुट टाईप टेक्स्ट और संख्या के लिए उपयोगकर्ता चयन के आधार पर।

आशा है कि आपको मेरी बात मिल जाएगी।

गतिविधि में OnCreate में ऐसा करें:

  t = (EditText) findViewById(R.id.test); t.setKeyListener(new KeyListener() { @Override public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { return false; } @Override public boolean onKeyOther(View view, Editable text, KeyEvent event) { return false; } @Override public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) { if (keyCode == 67) { // Handle backspace button =) if (text.length() > 0) { t.setText(text.subSequence(0, text.length() - 1)); t.setSelection(text.length()-1); } } return false; } @Override public int getInputType() { return InputType.TYPE_CLASS_NUMBER; } @Override public void clearMetaKeyState(View view, Editable content, int states) { } }); 

इस मामले में आप number टाइप करते हैं और एंड्रॉइड संख्यात्मक कीबोर्ड दिखाएगा, लेकिन आप जो चाहते हैं वह इनपुट कर सकते हैं। इसके अलावा आप अन्य तरीकों को ओवरराइड कर सकते हैं जैसे आप चाहते हैं

यहाँ मैं इसे कैसे हासिल किया है …

एंड्रॉइड: इनपुटटाइप = "टेक्स्टफ़ोनेटिक | नंबरअन्य" एंड्रॉइड: अंक = "/ 0123456789.abcdefghijklmnopqrstuvwxyz"

केवल वर्णों द्वारा निर्दिष्ट वर्णों को अनुमति दी जाएगी।

कृपया ध्यान दें कि दिखाया गया कीबोर्ड डायलर की है, न कि सामान्य कुंजीपटल। मेरे लिए, इसे हासिल किया गया था जो मुझे XML के अंदर पूरी तरह से आवश्यक था।

आपको इस मामले में किसी भी इनपुट टाइप फ़िल्टर का उपयोग नहीं करना चाहिए, बस अपनी संपादन टेक्स्ट में नीचे दी गई पंक्ति जोड़ें

 android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " 

अब केवल इन अक्षरों को EditText में प्रवेश करने की अनुमति दी जाएगी। आपके एडिटेक्च का पूरा कोड इस तरह होगा:

 <EditText android:id="@+id/etTest" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " android:hint="@string/hint"> 

क्यों न केवल एक टॉगल बटन है जो कि:

  • केवल संख्यात्मक मानों को अनुमति देने के लिए इनपुट प्रकार सेट करता है
  • QWERTY कुंजीपटल के उपयोग की अनुमति देने के लिए इनपुट प्रकार सेट करता है
  • या अन्य इनपुट प्रकार सेट करें (यदि आवश्यक हो)

इस तरह, आप संख्यात्मक कीपैड डिफ़ॉल्ट पर सेट कर सकते हैं, फिर उपयोगकर्ता एक बटन दबाने से इसे बदल सकता है।

विभिन्न फोनों में वर्तमान डिफ़ॉल्ट एंड्रॉइड इनपुट प्रकारों को यह संभव नहीं है

कई संभव हैक्स जो कुछ कीबोर्ड पर काम करते हैं , लेकिन दूसरों पर नहीं होते हैं , जैसे कि कच्चे इनपुट प्रकार को सेट करने की सामान्य विधि जैसे सामान्यतः उत्तर में शामिल किया जाता है:

  • editText.setRawInputType(InputType.TYPE_CLASS_NUMBER)

मुझे सबसे अच्छी सलाह मिल रही है जो आपके XML में textPostalAddress इनपुट प्रकार का उपयोग करना है:

  • android:inputType="textPostalAddress"

दुर्भाग्य से यह ऐसा नहीं करता जो हम अभी तक करना चाहते हैं, लेकिन हो सकता है कि यह भविष्य में हो । इसका एकमात्र फायदा यह है कि आपके संपादन बॉक्स पर मेटा जानकारी आपके प्रतिफल को दर्शाएगी।

प्रोग्राममेंटिक रूप से सामान्य प्रवाह के लिए थोड़ा सा बदलाव हो सकता है पहले आपको संपादन टेक्स्ट सेट करना होगा:

editText.setInputType(InputType.TYPE_CLASS_NUMBER);

इसके बाद आपको कीइवेट के लिए सुनना होगा। पाउंड का दबाव डालने पर InputType को InputType.TYPE_CLASS_TEXT पर फिर से सेट करें। यह काम करना चाहिए क्योंकि यह मेरे लिए काम करता है

 editText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.d("KeyBoard", "Keyboard Test Key Hit"); switch (keyCode) { KeyEvent.KEYCODE_POUND: if(editText.setInputType(InputType.TYPE_CLASS_TEXT); { editText.setInputType(InputType.TYPE_CLASS_TEXT); return true; } } } } 

आप सेटिंग की कोशिश कर सकते हैं —

 editText.setRawInputType(Configuration.KEYBOARD_QWERTY); 

अधिक विवरण के लिए

TextView के लिए आपके कोड में, एंड्रॉइड में "टेक्स्ट" निकालें: inputType।

यह होना चाहिए,

 <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="number" /> 

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

 // Numbers mEditText.setInputType(InputType.TYPE_CLASS_NUMBER); // Text mEditText.setInputType(InputType.TYPE_CLASS_TEXT); 

setInputType (int प्रकार) इनपुट प्रकार के लिए परिभाषित के रूप में स्थिर के साथ सामग्री का प्रकार सेट करें

जैसा कि सौरव कहते हैं, सरल श्रोता के साथ QWERTY कुंजीपटल और न्यूमेरिक कीबरड के बीच का सबसे अच्छा तरीका बदल रहा है:

 input.setInputType(InputType.TYPE_CLASS_TEXT); input.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { switch (keyCode) { case 24: // Volumen UP input.setInputType(InputType.TYPE_CLASS_NUMBER); break; case 25: // Volumen DOWN input.setInputType(InputType.TYPE_CLASS_TEXT); break; } return true; } }); 

मैं सभी तरीकों की कोशिश करता हूँ, लेकिन सही नहीं। इसलिए मेरे पास एक और विचार है सभी कीबोर्ड के लिए एकदम सही काम करें

  @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reset_password); editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks whether a hardware keyboard is available if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show(); if (editText.isFocused()) { editText.setInputType(InputType.TYPE_CLASS_TEXT); } } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show(); if (editText.getInputType() == InputType.TYPE_CLASS_TEXT) { editText.setInputType(InputType.TYPE_CLASS_NUMBER); } } } 

EditText के लिए अपने XML लेआउट में इस पैरामीटर जोड़ें:

 android:inputType="number|text" 

यह उपयोगकर्ता को अपनी गतिविधि या खंड में कोड होने की बजाय पाठ और संख्या दोनों को दर्ज करने और XML में तर्क को शामिल करने की अनुमति देगा।