بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
رفرش شدن اتوماتیک لیست ویو بعد از تغییر سایز فونت(حل شد)
سلام دوستان
من یک لیست ویو دارم که یک متن را نمایش میدهد، و یک اسلایدینگ منو که در آن یک دکمه(btn_size) است برای تغییر سایز فونت متن
وقتی دکمه btn_size را کلیک میکنم تا وقتی که به صورت دستی لیست ویو را اسکرول نکنم تغییری اعمال نمیشود، ولی من میخواهم که با انتخاب آن دکمه لیست ویو یک بار رفرش شود و تغییرات به صورت اتوماتیک بدون نیاز به اسکرول متن به صورت دستی همان لحظه اعمال شود
قسمت هایی که در کد ها درشت تر است، تغییراتی است که برای این منظور ایجاد کردم ولی به نتیجه دلخواه نرسیدم
ممنون میشم اگه راهنمایی کاملی بکنید
کد:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.matn);
str = getResources().getStringArray(R.array.doa);
final ListView list1=(ListView) findViewById(R.id.list1);
list1.setAdapter(new Adapter());
}
class Adapter extends ArrayAdapter<String> {
Typeface arabic;
Typeface persian;
public Adapter() {
super(Matn.this, R.layout.row, str);
super.notifyDataSetChanged();
}
private int lastPos = 1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row, parent, false);
arabic = Typeface.createFromAsset(getBaseContext().getAssets(), "amiri.ttf");
persian = Typeface.createFromAsset(getBaseContext().getAssets(), "davat.ttf");
TextView txt1 = (TextView) row.findViewById(R.id.txt1);
final Button btn_size = (Button) findViewById(R.id.btn_size);
btn_size.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
bl=!bl;
onRestart();
}
});
txt1.setText(str[position]);
if ((position < 60 & position % 2 != 0) | (position == 0) | (position == 61) | (position == 64) | (position == 66) | (position == 69) | (position == 71) | (position == 74) | (position == 76) | (position == 79) | (position == 81)) {
txt1.setTextColor(Color.parseColor("#000000"));
txt1.setTypeface(arabic);
if (bl){
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 32);
}
else{
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
}
}
else {
txt1.setTextColor(Color.parseColor("#000000"));
txt1.setTypeface(persian);
if (bl){
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
}
else{
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
}
txt1.setAlpha((float) 0.5);
}
return (row);
}
}
0
0
پس از تغییر سایز فونت از کد adapter.notifyDatasetChanged() استفاده کن شاید حل شه (10 سال پیش)
0
0
بعد از تغییر فونت این کار را کردم ولی این ارور را میده:
Cannot make a static reference to the non-static method notifyDataSetChanged() from the type ArrayAdapter (10 سال پیش)
0
0
یک اشتباه کوچک در قرار دادن notifyDataSetChanged داشتم که خوشبختانه حل شد (10 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .