আমরা কিভাবে সম্পাদনা পাঠ্যক্রমের জন্য ইনপুট প্রকারটি সেট করব? আমি চেষ্টা করছি:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
এটির কোনও প্রভাব আছে বলে মনে হয় না।
আমরা কিভাবে সম্পাদনা পাঠ্যক্রমের জন্য ইনপুট প্রকারটি সেট করব? আমি চেষ্টা করছি:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
এটির কোনও প্রভাব আছে বলে মনে হয় না।
উত্তর:
টেক্সটভিউ ডক্স অনুসারে, অ্যান্ড্রয়েডের প্রোগ্রামেটিক সংস্করণ: পাসওয়ার্ড সেট ট্রান্সফরমেশনমেথড () , সেটইনপুট টাইপ () নয়। সুতরাং যেমন কিছু:
mEdit.setTransformationMethod(PasswordTransformationMethod.getInstance());
কৌতুক করা উচিত।
EditText
(পাসওয়ার্ড বিন্দুর সাথে অক্ষর প্রতিস্থাপন করে) রূপান্তর করে । যা EditText
নিজেই প্রবেশ করার অনুমতি দেয় তার উপর এর কোনও প্রভাব নেই ।
প্রোগ্রামটিমেটিকভাবে একটি সম্পাদনা পাঠের জন্য ইনপুট ধরণের সেট করার জন্য আপনাকে অবশ্যই ইনপুট শ্রেণীর ধরণটি পাঠ্য বলে নির্দিষ্ট করতে হবে।
editPass.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
এখানে স্ট্যান্ডার্ড কীবোর্ডে প্রদর্শিত বিভিন্ন ইনপুট ধরণ রয়েছে।
editText.setInputType(InputType.TYPE_CLASS_TEXT);
ডকুমেন্টেশন ছাড়াও অন্যান্য বিকল্পগুলি TYPE_CLASS_TEXT
পাওয়া যাবে ।
<EditText
android:inputType="text"
/>
ডকুমেন্টেশন ছাড়াও অন্যান্য বিকল্পগুলি text
পাওয়া যাবে ।
উপরের চিত্রটির জন্য কোড এখানে।
public class MainActivity extends AppCompatActivity {
EditText editText;
TextView textView;
List<InputTypeItem> inputTypes;
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
textView = findViewById(R.id.textView);
initArray();
}
public void onChangeInputTypeButtonClick(View view) {
if (counter >= inputTypes.size()) {
startOver();
return;
}
textView.setText(inputTypes.get(counter).name);
editText.setInputType(inputTypes.get(counter).value);
editText.setSelection(editText.getText().length());
counter++;
}
private void startOver() {
counter = 0;
textView.setText("");
editText.setInputType(InputType.TYPE_CLASS_TEXT);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
private void initArray() {
inputTypes = new ArrayList<>();
inputTypes.add(new InputTypeItem("date", InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_DATE));
inputTypes.add(new InputTypeItem("datetime", InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_NORMAL));
inputTypes.add(new InputTypeItem("none", InputType.TYPE_NULL));
inputTypes.add(new InputTypeItem("number", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL));
inputTypes.add(new InputTypeItem("numberDecimal", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL));
inputTypes.add(new InputTypeItem("numberPassword", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
inputTypes.add(new InputTypeItem("numberSigned", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED));
inputTypes.add(new InputTypeItem("phone", InputType.TYPE_CLASS_PHONE));
inputTypes.add(new InputTypeItem("text", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL));
inputTypes.add(new InputTypeItem("textAutoComplete", InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE));
inputTypes.add(new InputTypeItem("textAutoCorrect", InputType.TYPE_TEXT_FLAG_AUTO_CORRECT));
inputTypes.add(new InputTypeItem("textCapCharacters", InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS));
inputTypes.add(new InputTypeItem("textCapSentences", InputType.TYPE_TEXT_FLAG_CAP_SENTENCES));
inputTypes.add(new InputTypeItem("textCapWords", InputType.TYPE_TEXT_FLAG_CAP_WORDS));
inputTypes.add(new InputTypeItem("textEmailAddress", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS));
inputTypes.add(new InputTypeItem("textEmailSubject", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT));
inputTypes.add(new InputTypeItem("textFilter", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER));
inputTypes.add(new InputTypeItem("textLongMessage", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE));
inputTypes.add(new InputTypeItem("textMultiLine", InputType.TYPE_TEXT_FLAG_MULTI_LINE));
inputTypes.add(new InputTypeItem("textNoSuggestions", InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS));
inputTypes.add(new InputTypeItem("textPassword", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD));
inputTypes.add(new InputTypeItem("textPersonName", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSON_NAME));
inputTypes.add(new InputTypeItem("textPhonetic", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PHONETIC));
inputTypes.add(new InputTypeItem("textPostalAddress", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS));
inputTypes.add(new InputTypeItem("textShortMessage", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE));
inputTypes.add(new InputTypeItem("textUri", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI));
inputTypes.add(new InputTypeItem("textVisiblePassword", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD));
inputTypes.add(new InputTypeItem("textWebEditText", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT));
inputTypes.add(new InputTypeItem("textWebEmailAddress", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS));
inputTypes.add(new InputTypeItem("textWebPassword", InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD));
inputTypes.add(new InputTypeItem("time", InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME));
}
class InputTypeItem {
private String name;
private int value;
InputTypeItem(String name, int value) {
this.name = name;
this.value = value;
}
}
}
আমি সব দিয়ে সমাধান করেছি
.setInputType(InputType.TYPE_CLASS_NUMBER);
পরিষ্কার তথ্য এবং জন্য দেখুন
.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
বিন্দুগুলি দেখতে (যদি ডেটা সংখ্যা হয় তবে এটি অন্য শ্রেণীর পছন্দ নয়)
এটি আমার মতো অন্যদের জন্য সহায়ক হতে পারে যারা পাসওয়ার্ড এবং ফ্রি-টেক্সট মোডের মধ্যে টগল করতে চেয়েছিল। আমি প্রস্তাবিত ইনপুট পদ্ধতিগুলি ব্যবহার করার চেষ্টা করেছি তবে এটি কেবল এক দিকেই কাজ করেছিল। আমি পাসওয়ার্ড থেকে পাঠ্যে যেতে পারি তবে আমি আর ফিরে যেতে পারিনি। যারা টগল হ্যান্ডেল করার চেষ্টা করছেন (যেমন একটি পাসওয়ার্ড চেক বাক্স দেখান) ব্যবহার করুন
@Override
public void onClick(View v)
{
if(check.isChecked())
{
edit.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
Log.i(TAG, "Show password");
}
else
{
edit.setTransformationMethod(PasswordTransformationMethod.getInstance());
Log.i(TAG, "Hide password");
}
}
আমি ক্রেডিট আছে এই সমাধান জন্য। ইচ্ছে করে আমি কয়েক ঘন্টা আগে খুঁজে পেয়েছি!
এটি আপনার লেআউটে সম্পাদনা পাঠ / পাঠ্য ভিউ ট্যাগে যুক্ত করার চেষ্টা করুন
android:password="true"
সম্পাদনা: আমি কেবল আপনার পোস্টটি আবার পড়েছি, সম্ভবত আপনি নির্মাণের পরে এটি করা দরকার। আপনার স্নিপেট কেন কাজ করবে না তা আমি দেখতে পাচ্ছি না।
আমি জানি প্রত্যাশিত উত্তরটি রয়েছে Java
। তবে এখানে আমার 2 সেন্ট পরামর্শটি সর্বদা সম্পর্কিত XML
(ন্যূনতম বেসিক স্টাফগুলি) সম্পর্কিত জিনিসগুলি হ্যান্ডেল করার চেষ্টা করুন যাতে আমি xml
এই ব্যবহারের ক্ষেত্রে পরিচালনা করার পরিবর্তে কোনও বৈশিষ্ট্য ব্যবহার করার পরামর্শ দেব wouldjava
<EditText
android:inputType="textPassword"/>
লুকান:
edtPassword.setInputType(InputType.TYPE_CLASS_TEXT);
edtPassword.setTransformationMethod(null);
দেখান:
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
password.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
এছাড়াও আপনাকে সাবধানতা অবলম্বন করতে হবে যে কার্সারটি এই ফাংশনটি বলার পরে এডিটেক্সটটির প্রারম্ভিক বিন্দুতে চলে যায়, তাই নিশ্চিত হয়ে নিন যে আপনি কার্সারটিকে আবার শেষ পয়েন্টে সরিয়ে নিয়েছেন।
field.setInputType(InputType.TYPE_CLASS_TEXT);