PDA

View Full Version : سوال: تغییر fontface هدر یک custom list view?



farhadfery
پنج شنبه 10 مرداد 1392, 01:35 صبح
سلام. یه listview دارم که به صورت دلخواه پیاده سازی شده، برای این لیست یک فایل xml به عنوان header ساختم که یک متن را بالای لیست نمایش می ده. من می خوام fontface متن موجود در هدر را تغییر بدم.
این هدر

<TextView
android:id="@+id/txtHeader"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:background="#336699"
android:gravity="center_vertical"
android:padding="7dp"
android:text="@string/shohadaye_shakesh_92"
android:layout_gravity="right"
android:textColor="#FFFFFF"
android:textSize="18dp"
android:textStyle="bold" />

داخل اکتیوتی:


listView1 = (ListView) findViewById(R.id.listView1);
listView1.setTextFilterEnabled(true);
View header = (View) getLayoutInflater().inflate(
R.layout.listview_header_row, null);
listView1.addHeaderView(header);

farhadfery
پنج شنبه 10 مرداد 1392, 01:36 صبح
من تو همین اکتیوتی زمانی که می خوام متن textview هدر را تغییر بدهم، با خطا روبرو می شه. نوع خطا هم مربوط به چندنخی هست.



typeface = Typeface.createFromAsset(getAssets(), "fonts/BYekan.ttf");
txtHeader = (TextView) findViewById(R.id.txtHeader);
txtHeader.setTypeface(typeface);
txtHeader.setText(PersianReshape.reshape(getResour ces().getString(
R.string.farh)));

Modernidea
پنج شنبه 10 مرداد 1392, 02:50 صبح
سلام

اینکه میگید خطا مربوط به چند نخی است، ذهن من میره سمت اینکه شما اومدید با یک Thread غیر از Thread اصلی، دارید UI را تغییر میدید و این خطا تولید میشه. اگر این چیزی که من گفتم درست باشه، برای حلش میتونید به جای استفاده از Thread از AsyncTask یا راه حل دیگه ای استفاده کنید. AsyncTask بیشتر برای کارهایی که محاسبات داره استفاده میشه.
در غیر این صورت، پیشنهاد میدم LogCat را قرار بدید شاید کمک بیشتری کنه.

درضمن، نمیشه بجای اینکه یک View به لیست اظافه کنید به عنوان Header، دوتا Layout از نوع Linear که زیر هم قرار میگیرند بسازید و Header را در لایه بالایی قرار بدید و لیست را در لایه پایینی؟ با این کار به راحتی به TextView دسترسی خواهید داشت.

موفق باشید.