/ / टेक्स्ट स्टाइल को प्रोग्रामेटिक रूप से बदलें - एंड्रॉइड, एंड्रॉइड-स्टूडियो

पाठ शैली को प्रोग्रामेटिक रूप से बदलें - एंड्रॉइड, एंड्रॉइड-स्टूडियो

मैं टेक्स्ट स्टाइल को बोल्ड में बदलना चाहता हूं जब उपयोगकर्ता बोल्ड चेकबॉक्स की जांच करता है लेकिन मैं ऐसा करने में असमर्थ हूं। चेकबॉक्स का चयन करने के बाद भी टेक्स्ट सामान्य रूप से दिखाई देता है।

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:gravity="top"
/>

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bold"
android:id="@+id/bold"
android:layout_alignBottom="@+id/editText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="57dp"
android:checked="false" />

</RelativeLayout>

मुख्य गतिविधि

public class MainActivity extends AppCompatActivity {
CheckBox checkBox;
EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

editText= (EditText) findViewById(R.id.editText);
checkBox=(CheckBox)findViewById(R.id.bold);
if(checkBox.isChecked())
editText.setTypeface(editText.getTypeface(), Typeface.BOLD);

}
...
}

उत्तर:

उत्तर № 1 के लिए 1

आपको एक जोड़ना होगा OnCheckedChangeListener और वहां टाइपफेस बदलें।

एक बोल्ड और इटैलिक चेकबॉक्स के लिए आप कुछ ऐसा कर सकते हैं:

CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton button, boolean checked) {
Typeface typeface = editText.getTypeface();

switch(button.getId()) {
case R.id.bold:
if(typeface.isItalic()) {
editText.setTypeface(typeface, checked?Typeface.BOLD_ITALIC:Typeface.ITALIC);
} else {
editText.setTypeface(typeface, checked?Typeface.BOLD:Typeface.NORMAL);
}
break;
case R.id.italic:
if(typeface.isBold()) {
editText.setTypeface(typeface, checked?Typeface.BOLD_ITALIC:Typeface.BOLD);
} else {
editText.setTypeface(typeface, checked?Typeface.ITALIC:Typeface.NORMAL);
}
break;
}
}
};

bold.setOnCheckedChangeListener(listener);
italic.setOnCheckedChangeListener(listener);

जवाब के लिए 0 № 2

Android में, आप निम्न विशेषता का उपयोग करके किसी भी XML विजेट की पाठ शैली को बदल सकते हैं:

android:textStyle="bold"

आप भी उपयोग कर सकते हैं:

android:textStyle="italic"
android:textStyle="bold|italic"

इटैलिक्स के लिए और बोल्ड और इटैलिक दोनों सम्मानपूर्वक।

आप भी उपयोग कर सकते हैं:

editText.setTypeface(editText.getTypeface(), Typeface.BOLD);

यह एक से बुलाया जाना चाहिए onCreate निम्नलिखित का उपयोग करने की विधि:

XML:
android:onClick="makeBold"

Activity:
public void makeBold(View V) {
if(checkBox.isChecked())
editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
}

उम्मीद है की यह मदद करेगा!


जवाब के लिए 0 № 3

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

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked){
editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
} else {
editText.setTypeface(editText.getTypeface(), Typeface.NORMAL);
}
});