Java/Kotlin कोड से EditText के इनपुट टाइप (नंबर, टेक्स्ट, पासवर्ड, आदि) को डायनामिकली बदलने का तरीका।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="30dp"
android:padding="4dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="SetInputTypeNumber"
android:text="Set EditText input type to number" />
</LinearLayout>
चरण 3: इनपुट टाइप सेट करें
src/MainActivity.java:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
}
public void SetInputTypeNumber(View view) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
}
}
सामान्य InputType स्थिरांक
| स्थिरांक | विवरण |
|---|---|
TYPE_CLASS_TEXT | सामान्य टेक्स्ट |
TYPE_CLASS_NUMBER | संख्या |
TYPE_CLASS_PHONE | फोन नंबर |
TYPE_CLASS_DATETIME | दिनांक/समय |
TYPE_TEXT_VARIATION_PASSWORD | पासवर्ड (छिपा हुआ) |
TYPE_TEXT_VARIATION_EMAIL_ADDRESS | ईमेल |
TYPE_TEXT_VARIATION_URI | URL |
TYPE_TEXT_FLAG_MULTI_LINE | बहु-लाइन |
TYPE_TEXT_FLAG_CAP_WORDS | प्रत्येक शब्द कैपिटलाइज़ |
कॉम्बिनेशन उपयोग
// नंबर + डेसीमल editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); // पासवर्ड + विजिबल टॉगल editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); // ईमेल editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
XML में सेट करना (स्थैतिक)
<EditText
android:inputType="numberDecimal"
android:digits="0123456789." />
महत्वपूर्ण
setInputType()कॉल करने के बाद कीबोर्ड रीस्टार्ट हो सकता है- कर्सर स्थिति बनाए रखने के लिए
setSelection()उपयोग करें android:inputTypeXML में डिफ़ॉल्ट सेट करता है