এটি সত্যিই খুব হতাশাব্যঞ্জক যে আপনি এটি স্টাইল ( <item name="android:textAllCaps">true</item>
) দ্বারা বা প্রতিটি এক্সএমএল লেআউট ফাইলটিতে টেক্সটএলক্যাপস বৈশিষ্ট্য সহ করতে পারবেন না এবং এটি করার একমাত্র উপায় হ'ল আপনি যখন স্ট্রিংয়ের প্রতিটি ক্ষেত্রে স্ট্রিং. টুআপারকেস () ব্যবহার করছেন তখন একটি পাঠ্য ভিউএক্সএক্সএক্সএক্স.সেটেক্সট (স্ট্রিং)।
আমার ক্ষেত্রে, আমি আমার কোডের সর্বত্রই স্ট্রিং.টো.অপারসেস () রাখতে চাইনি তবে এটি করার জন্য একটি কেন্দ্রীভূত জায়গা রাখতে চাই কারণ আমার কিছু ক্রিয়াকলাপ ছিল এবং টেক্সটভিউগুলির সাথে আইটেম লেআউটগুলি তালিকাভুক্ত করা হয়েছিল যেখানে সর্বকালের মূলধন হবে বলে মনে করা হচ্ছে (একটি শিরোনাম) এবং অন্যান্য যারা করেন নি ... তাই ... কিছু লোকেরা হয়ত ওভারকিল বলে মনে করতে পারে তবে আমি আমার নিজস্ব ক্যাপিটালাইজড টেক্সটভিউ ক্লাস তৈরি করে android.widget.TextView এবং ফ্লাইটে পাঠ্যকে মূলধন করে সেটটেক্সট পদ্ধতিকে ওভাররড করেছি।
কমপক্ষে, যদি ডিজাইনের পরিবর্তন হয় বা ভবিষ্যতের সংস্করণগুলিতে আমার মূলধন পাঠ্য মুছে ফেলার প্রয়োজন হয়, লেআউট ফাইলগুলিতে আমার কেবল সাধারণ টেক্সটভিউতে পরিবর্তন দরকার।
এখন, বিবেচনায় রাখুন যে আমি এটি করেছি কারণ অ্যাপের ডিজাইনার প্রকৃতপক্ষে মূল অ্যাপ্লিকেশন জুড়েই এই পাঠ্যটি (শিরোনামগুলি) অ্যাপ্লিকেশনটিতে চেয়েছিলেন এবং মূল টেক্সটভিউগুলিও ছিল যেখানে মূলধনটি আসল সামগ্রীর সাথে আসে ।
এই শ্রেণি:
package com.realactionsoft.android.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewTreeObserver;
import android.widget.TextView;
public class CapitalizedTextView extends TextView implements ViewTreeObserver.OnPreDrawListener {
public CapitalizedTextView(Context context) {
super(context);
}
public CapitalizedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CapitalizedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text.toString().toUpperCase(), type);
}
}
এবং যখনই আপনার এটি ব্যবহারের প্রয়োজন হবে, কেবলমাত্র এটি এক্সএমএল লেআউটে সমস্ত প্যাকেজ সহ ঘোষণা করুন:
<com.realactionsoft.android.widget.CapitalizedTextView
android:id="@+id/text_view_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
কিছু যুক্তি দিবে যে টেক্সটভিউতে পাঠ্য স্টাইল করার সঠিক উপায়টি একটি স্প্যানিয়েবল স্ট্রিং ব্যবহার করা , তবে আমি মনে করি এটি আরও বেশি পরিমাণে হবে, বেশি সংস্থান গ্রহণের কথা উল্লেখ না করা কারণ আপনি টেক্সটভিউয়ের চেয়ে আরও একটি শ্রেণি ইনস্ট্যান্ট করছেন।