我一直在尋找這幾天現在,但無濟於事(還!)如何在多個文本視圖中動態設置文本大小,形成列表視圖的行?
正如問題所說 - 我試圖動態地改變顯示在列表視圖中的文本的大小。我的xml設置爲將listview中的每一行描述爲具有圖像視圖(圖標)和文本視圖(標籤)。
我想調整在列表視圖中所有的「標籤」 textviews內文本的大小一氣呵成,在兩種情況下:響應 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]);
}
}
你的'fontSize'在生成'ListView'時是否改變? – slybloty
是的,在生成列表視圖後字體大小發生了變化 - 並且列表視圖應該相應地更新相同的項目,但更大的字體大小。嗯... – Steven