以下是我的WordAdapter的代码行
public WordAdapter(Context context, ArrayList<Word> words, int colorResourceId) {
super(context, 0, words);
mColorResourceId = colorResourceId;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// Check if an existing view is being reused, otherwise inflate the view
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item, parent, false);
}
final Word currentWord = getItem(position);
TextView textView = (TextView)
listItemView.findViewById(R.id.text_view);
textView.setText((currentWord.getTextId()));
if (Fragment1.isActive == true){
textView.setTextSize(55);
} else if (Fragment1.isActive == false){
textView.setTextSize(35);
if (Fragment2.isActive == true) {
textView.setTextSize(35);
}else if (Fragment2.isActive == false){
textView.setTextSize(35);
if (Fragment3.isActive == true) {
textView.setTextSize(35);
}else if (Fragment3.isActive == false){
textView.setTextSize(35);
return listItemView;
}
但是问题是我项目中的所有片段都被更新为 textSize为55 ...
我还注意到我的项目中有三个片段,这是一件特别的事情。如果我先单击Fragment1
,则所有片段都会将 textSize更新为55 。但是如果我先单击其他两个片段。.textSize
保持不变为35 ...
我只想将Fragment1在屏幕上激活,则将TextSize设置为55,如果其他两个Fragments被激活,则textSize应该为35。.
我在其他问题中读到,如果我使用我的WordAdapter
类的上下文参数,它可能..喜欢使用context.getClass().getSimpleName()
,但不确定如何使用...请指导我。 ..
答案 0 :(得分:0)
您可以直接在if
语句中使用布尔值-无需执行== true
或== false
。同样,如果布尔值不为true,则它为false,因此您无需显式检查其是否为true,然后检查其是否为false。话虽如此,您的代码不必那么复杂。
TextView textView = (TextView) listItemView.findViewById(R.id.text_view);
textView.setText(currentWord.getTextId());
if (Fragment1.isActive) {
textView.setTextSize(55);
} else if (Fragment2.isActive || Fragment3.isActive) {
textView.setTextSize(35);
}
此外,您应该将标注资源用于文本大小,而不是硬编码值,但这完全是另一个问题。
答案 1 :(得分:0)
在WordAdapter中声明上下文
private Context mContext;
在WordAdapter ArrayList中。.
mContext = context;
然后..检查正在运行的活动,并通过以下代码相应地设置TextSize:
if (mContext.getClass().getSimpleName().equalsIgnoreCase("Activity1") || mContext.getClass().getSimpleName().equalsIgnoreCase("Activity3")) {
onClickTextView.setTextSize(55);
} else {
onClickTextView.setTextSize(35);
}