我已经看了几天了,但无济于事(还!)
正如问题所说 - 我正在尝试动态更改列表视图中显示的文本的大小。我的 xml 设置为将列表视图中的每一行描述为具有图像视图(图标)和文本视图(标签)。
我想在两种情况下一次性调整列表视图中所有“标签”文本视图中的文本大小:1)响应当前活动中的按钮单击 2)响应从共享中读取的值优先
我相信我可以使用 setTextAppearance 方法。这是我的代码 - 它运行没有错误,但它也没有达到预期的效果!
如果您对此有任何想法,我将不胜感激。最好的祝愿史蒂文
import android.content.Context;
import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class IndexCustomAdapter extends ArrayAdapter<String>
{
LayoutInflater inflater;
String[] indexContents;
String[] scores;
private SharedPreferences spSettings;
public IndexCustomAdapter(Context context, int indexRowId, String[] objs)
{
super(context, indexRowId, objs);
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
indexContents = objs;
spSettings = getContext().getSharedPreferences("settings", 0);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
{
convertView = inflater.inflate(R.layout.indexrow, parent, false);
}
TextView label = (TextView) convertView.findViewById(R.id.label);
ImageView icon = (ImageView) convertView.findViewById(R.id.icon);
// Select the correct text size
int fontSize = spSettings.getInt("fontSize", 16);
switch (fontSize)
{
case 24:
label.setTextAppearance(getContext(), android.R.attr.textAppearanceLarge);
break;
case 20:
label.setTextAppearance(getContext(), android.R.attr.textAppearanceMedium);
case 16:
label.setTextAppearance(getContext(), android.R.attr.textAppearanceSmall);
}
label.setText(indexContents[position]);
}
}