我尝试在我的应用中更改textSize。 我想更改我的customlistview的textSize。 我的listview的行XML文件有image,3 textView。 我想在用户单击Optionmenu时更改textView的textSize,然后单击AlertDialog的SingleChoiceItems复选框。
这是我的代码。
我是否需要更改XMl文件? 然后我如何设置我的customAdapter?.. 我是否需要更改适配器的getView方法?
我愿意接受任何答案。
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.ks_notice_menu_textsize:
final CharSequence[] items = {"normal", "big", "bigger"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("select textSize");
builder.setSingleChoiceItems(items, mSelect,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mSelect = which;
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
int textSize = (int)Username.getTextSize();
switch(mSelect){
case 0:
//here I need to change textSize
break;
case 1:
//here I need to change textSize
break;
case 2:
//here I need to change textSize
break;
}
}
});
builder.setNegativeButton("cancel", null);
builder.show();
return true;
}
return false;
答案 0 :(得分:0)
在ListView
行的XML中,您需要向相关的TextView
添加ID。然后,您需要替换:
//here I need to change textSize
with(假设您希望文本大小为5):
customAdapter.setTextSize(5);
最后,在您的customAdapter
中,您需要实现一个setTextSize(int)
方法,该方法检索所有视图并将其文本大小设置为传递的值。它还需要存储该值,并将其用于用户向下滚动时创建的任何新视图。
类似的东西:
public void setTextSize(final int textSize) {
fTextSize = textSize;
for (View view : fViews) {
((TextView) view.findViewById(R.id.list_view_text_1).setTextSize(textSize);
((TextView) view.findViewById(R.id.list_view_text_2).setTextSize(textSize);
((TextView) view.findViewById(R.id.list_view_text_3).setTextSize(textSize);
}
}
和
public View getView(final int position, final View convertView, final ViewGroup parent) {
View view = // retrieve your view from XML.
fViews.add(view);
((TextView) view.findViewById(R.id.list_view_text_1).setTextSize(textSize);
((TextView) view.findViewById(R.id.list_view_text_2).setTextSize(textSize);
((TextView) view.findViewById(R.id.list_view_text_3).setTextSize(textSize);
return (view);
}