カスタム書体で設定して太字にする TextView があります。それはうまくいきます。問題は、テキスト「isBold()」が FALSE を返すかどうかを確認するときです。
書体を指定せずにテキストを BOLD のみに設定すると、isBold() は TRUE を返します。また、tempTextView.setTypeface(MY_STYLE, Typeface.BOLD); を設定するときに選択できるカスタム書体「MY_STYLE」が複数あることにも注意してください。
ここに私のコードスニペットがあります:
public boolean onTouch(View v, MotionEvent evt) {
if(evt.getAction() == MotionEvent.ACTION_DOWN) {
int numLettersSelected = 0;
if(v.getTag() == "randomLetter") {
TextView tempTextView = (TextView) v;
if((selectedStrs.contains(tempTextView.getText())) &&
(tempTextView.getTypeface().isBold())) { //This line returns FALSE
// Do something
}
else {
String matchLtr = String.valueOf(randomWordStr.charAt(numLetterToSelect));
if(tempTextView.getText().equals(matchLtr)) {
tempTextView.setTypeface(MY_STYLE, Typeface.BOLD);
//tempTextView.setTypeface(null, Typeface.BOLD);// if I set MY_STYLE to null isBold() returns TRUE above
}
}
}
}
return false;
}
/* Here is how I defined MY_STYLE */
public Typeface fontStyle(Context m_Context) {
Typeface f_style = Typeface.MONOSPACE;
//Get Text Style from Options
OptionsSpell option = new OptionsSpell();
switch (option.getTextStyle()) {
case 1:
f_style = Typeface.createFromAsset(m_Context.getAssets(), "dnealian.ttf");
break;
case 2:
f_style = Typeface.createFromAsset(m_Context.getAssets(), "comic.ttf");
break;
}
return f_style;
}
// Return text style to caller
public int getTextStyle () {
int selectedId;
//Check logic and return selectedId = 1 or 2
return selectedId;
}
// Get Text FONT info from Options
OptionsSpellUtil m_Options = new OptionsSpellUtil();
MY_STYLE = m_Options.fontStyle(this);