উত্তর:
অ্যান্ড্রয়েড আসলে এই জন্য একটি অন্তর্নির্মিত ইনপুট ফিল্টার আছে !
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
সাবধান, setFilters
অন্য সব বৈশিষ্ট্যাবলী পুনরায় সেট করবে যা এক্সএমএল মাধ্যমে সেট হয়েছিল (অর্থাত maxLines
, inputType
, imeOptinos
...)। এটি প্রতিরোধ করতে, ইতিমধ্যে বিদ্যমানগুলিতে আপনাকে ফিল্টার (গুলি) যুক্ত করুন।
InputFilter[] editFilters = <EditText>.getFilters();
InputFilter[] newFilters = new InputFilter[editFilters.length + 1];
System.arraycopy(editFilters, 0, newFilters, 0, editFilters.length);
newFilters[editFilters.length] = <YOUR_FILTER>;
<EditText>.setFilters(newFilters);
maxLength
), যোগ করার চেষ্টা InputFilter.AllCaps()
করতে editText.getFilters
অ্যারে। স্ট্যাকওভারফ্লো.com
editText.filters = editText.filters + InputFilter.AllCaps()
editText.filters += InputFilter.AllCaps()
কোটলিনের দুর্দান্ত! <3
আপনি যদি নিজের সম্পাদনা পাঠ্যে ডিফল্টরূপে বড় হাতের অক্ষরে লিখতে ব্যবহারকারীকে বাধ্য করতে চান তবে আপনাকে কেবল যুক্ত করতে হবে । (ব্যবহারকারী এখনও ম্যানুয়ালি ছোট হাতের অক্ষরে পরিবর্তন করতে পারেন))android:inputType="textCapCharacters"
সেট input type
থেকে TYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS
। keyboard
যে সম্মান করা উচিত নয়।
আপনি দুটি উপায় ব্যবহার করতে পারেন।
প্রথম উপায়:
android:inputType="textCapSentences"
আপনার সম্পাদনা পাঠ্য সেট করুন।
দ্বিতীয় উপায়:
যখন ব্যবহারকারী নম্বরটি প্রবেশ করেন তখন আপনাকে পাঠ্য প্রহরী ব্যবহার করতে হবে এবং ছোট থেকে বড় অক্ষরে পরিবর্তন করতে হবে।
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable et) {
String s=et.toString();
if(!s.equals(s.toUpperCase()))
{
s=s.toUpperCase();
edittext.setText(s);
edittext.setSelection(edittext.length()); //fix reverse texting
}
}
});
আপনি android:textAllCaps="true"
এডিট টেক্সটে আপনার এক্সএমএল ফাইলটিতে সম্পত্তি যুক্ত করতে পারেন । এটি সমস্ত ক্যাপ মোডে প্রদর্শিত সফ্টিনপুট কীবোর্ডকে কার্যকর করবে। আপনি যে মানটি প্রবেশ করেছেন তা বড় হাতের অক্ষরে উপস্থিত হবে। তবে এটি নিশ্চিত করে না যে ব্যবহারকারী কেবলমাত্র UpperCase
অক্ষরে প্রবেশ করতে পারে । তারা চাইলে, তারা এখনও নিম্ন কেস অক্ষরে ফিরে যেতে পারে। আপনি যদি নিশ্চিত করতে চান যে আউটপুটটি Edittext
সমস্ত ক্যাপগুলিতে রয়েছে তবে ক্লাসের toUpperCase()
পদ্ধতি ব্যবহার করে আপনাকে ম্যানুয়ালি ইনপুট স্ট্রিংটি রূপান্তর করতে হবে String
।
android:textAllCaps="true"
এটি কেবলমাত্র টেক্সটভিউয়ের সম্পত্তি ( স্ট্যাকওভারফ্লো . com /a/28803492/ 5268730 )। android:inputType="textCapCharacters"
পরিবর্তে ব্যবহার করুন।
আপনার android:inputType="textCapCharacters"
xML ফাইল এডিটেক্সট দিয়ে রাখা উচিত ।
কীবোর্ডের সাথে ডিল করার বিষয়ে চিন্তা করার পরিবর্তে, কেবল কোনও ইনপুট, ছোট হাতের বা বড় হাতের না কেন এবং স্ট্রিংটিকে বড় হাতের মধ্যে রূপান্তর করবেন না কেন?
নিম্নলিখিত কোডে সহায়তা করা উচিত:
EditText edit = (EditText)findViewById(R.id.myEditText);
String input;
....
input = edit.getText();
input = input.toUpperCase(); //converts the string to uppercase
এটি ব্যবহারকারী-বান্ধব, যেহেতু ব্যবহারকারীর পক্ষে এটি জেনে রাখা অপ্রয়োজনীয় যে আপনার বড় হাতের স্ট্রিং দরকার। আশাকরি এটা সাহায্য করবে.
আরও ভাল করে ... এক মাছ ধরার নৌকা মধ্যে Kotlin ...
// gets your previous attributes in XML, plus adds AllCaps filter
<your_edit_text>.setFilters(<your_edit_text>.getFilters() + InputFilter.AllCaps())
সম্পন্ন!
<your_edit_text>.filters = <your_edit_text>.filters + InputFilter.AllCaps()
<your_edit_text>.filters += InputFilter.AllCaps()
ইন kotlin , .kt ফাইল বানান পরিবর্তন:
edit_text.filters = edit_text.filters + InputFilter.AllCaps()
আইডি সহ উইজেটের সরাসরি অ্যাক্সেসের জন্য সিন্থেটিক সম্পত্তি ব্যবহার করুন। এবং এক্সএমএলে, আপনার সম্পাদনা পাঠ্যের জন্য আরও কয়েকটি পতাকা যুক্ত করুন:
<EditText
android:id="@+id/edit_text_qr_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
...other attributes...
android:textAllCaps="true"
android:inputType="textCapCharacters"
/>
এটি কীবোর্ডকে উপরের কেস সক্ষম হিসাবে আপডেট করবে।
ইনপুট ফিল্টার ব্যবহার করুন
editText = (EditText) findViewById(R.id.enteredText);
editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable et) {
String s=et.toString();
if(!s.equals(s.toUpperCase()))
{
s=s.toUpperCase();
edittext.setText(s);
}
editText.setSelection(editText.getText().length());
}
});
শুধু এটি করুন:
// ****** Every first letter capital in word *********
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapWords"
/>
//***** if all letters are capital ************
android:inputType="textCapCharacters"
আমার জন্য এটি অ্যান্ড্রয়েড যুক্ত করে কাজ করেছে : টেক্সটআলক্যাপস = "সত্য" এবং অ্যান্ড্রয়েড: ইনপুটটাইপ = "টেক্সটক্যাপচার্যাক্টরস"
<android.support.design.widget.TextInputEditText
android:layout_width="fill_parent"
android:layout_height="@dimen/edit_text_height"
android:textAllCaps="true"
android:inputType="textCapCharacters"
/>
সমস্ত মূলধন পেতে, আপনার এক্সএমএলে নিম্নলিখিতটি ব্যবহার করুন:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:inputType="textCapCharacters"
/>
গৃহীত উত্তরের ভিত্তিতে, এই উত্তরটি একই কাজ করে তবে কোটলিনে। কেবল কপিপাস্টিং সহজ করতে: ·)
private fun EditText.autocapitalize() {
val allCapsFilter = InputFilter.AllCaps()
setFilters(getFilters() + allCapsFilter)
}
filters += InputFilter.AllCaps()
: ডি
এডিটেক্সট ক্লিক করে আপনার এক্সএমএলে এই কোডটি ব্যবহার করুন যখন মূলধন কীবোর্ড পেতে ,
<EditText
android:id="@+id/et"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:hint="Input your country"
android:padding="10dp"
android:inputType="textCapCharacters"
/>
আমি অ্যান্ড্রয়েড 5.1 এবং অ্যান্ড্রয়েড 6.0 উভয়ের জন্যই আমার অ্যাপটি তৈরি করতে ভিজুয়াল স্টুডিও 2015 / জ্যামারিন ব্যবহার করছি both
আমি যখন android:inputType="textCapCharacters"
আমার অ্যাক্সিম্যালটিতে উল্লেখ করেছি তখন অলক্যাপস কীবোর্ডটি অ্যান্ড্রয়েড .0.০ তে প্রত্যাশিত হিসাবে উপস্থিত হয়েছিল, তবে অ্যান্ড্রয়েড 5.1 নয়। আমি android:textAllCaps="true"
আমার axML এ যুক্ত করেছি এবং অ্যান্ড্রয়েড 5.1 এ এখনও অলক্যাপগুলি নেই। আমি ব্যবহার করে একটি ফিল্টার সেট করেছি EditText.SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
এবং সফ্ট কীবোর্ড অ্যান্ড্রয়েড 5.1 এ লোয়ার কেস অক্ষর দেখায়, ইনপুট ফিল্ডটি এখন অলক্যাপস।
সম্পাদনা: আমি যে আচরণগত পার্থক্যগুলি পর্যবেক্ষণ করেছি এবং ওএস-সম্পর্কিত বলে ধরে নিয়েছি তা হ'ল পরীক্ষামূলক ডিভাইসে আমার গুগল কীবোর্ডের বিভিন্ন সংস্করণ ছিল। একবার আমি সর্বশেষতম গুগল কীবোর্ডে ডিভাইসগুলি আপডেট করেছি (এই লিখনটি হিসাবে জুলাই ২০১ released প্রকাশিত হয়েছে), 'সমস্ত ক্যাপস' আচরণটি ওএসের সাথে সামঞ্জস্যপূর্ণ ছিল। এখন, সমস্ত ডিভাইস কীবোর্ডে লোয়ার-কেস অক্ষরগুলি দেখায় তবে ইনপুটটি সমস্ত ক্যাপস কারণে হয়SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
এরলভল্টনের জবাবের সমতুল্য জামারিন:
editText.SetFilters(editText.GetFilters().Append(new InputFilterAllCaps()).ToArray());
সহজভাবে, আপনার এক্সএমএল ফাইলের সম্পাদনা পাঠের নীচে কোড যুক্ত করুন।
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
এবং আপনি যদি বড় হাতের পাঠ্য এবং অঙ্ক উভয়কেই অনুমতি দিতে চান তবে নীচের কোডটি ব্যবহার করুন।
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
যদিও হওয়া উচিত ।