Я пытаюсь изменить шрифт текста в одной из действий вкладки Layout. Я использую собственный шрифт. Но шрифт не работает. для одного из моих классов, когда я переключаюсь на эту вкладку, я получаю сообщение об ошибке от отладчика eclipse, но, похоже, в моем коде нет ничего плохого. Это код, который не работает
public class YearThreeActivity extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.yearthree);
/*without the next three lines the tab view works fine */
TextView tv=(TextView)findViewById(R.id.yearthree_view);//<-- debugger says this assignment is null but which shouldn't be the case as the R class has that in the id subclass.
Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/Century_Gothic.ttf");
tv.setTypeface(font);
}
}
Однако эта деятельность имеет почти то же самое, и когда я переключаюсь на эту вкладку, она работает
public class StatsActivity extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.stats);
TextView tv=(TextView)findViewById(R.id.stats_view);
Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/Century_Gothic.ttf");
tv.setTypeface(font);
}
}
Я часами проверял это. Файлы манифеста xml, файлы макета, все одинаково с обоими из них, однако первый из них не работает... Я здесь как последнее средство...: <
Я починил это. Это связано с тем, как я дал textViews в своих идентификаторах приложения. Они совпали
Когда я использую вкладки, я обычно просто скрываю тег tabwidget, устанавливая видимость Android как ушедший.
И добавьте кнопки, чтобы действовать как кнопки вкладок, такие как
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1.0"/>
<FrameLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="64dip">
<Button android:layout_height="fill_parent" android:layout_width="0dip"
android:layout_weight="1.0"
android:background="@drawable/ic_tab_artists"
android:id="@+id/artist_id" android:onClick="tabHandler"/>
<Button android:layout_height="fill_parent" android:layout_width="0dip"
android:layout_weight="1.0"
android:background="@drawable/ic_tab_artists"
android:id="@+id/album_id" android:onClick="tabHandler"/>
<Button android:layout_height="fill_parent" android:layout_width="0dip"
android:layout_weight="1.0"
android:background="@drawable/ic_tab_artists"
android:id="@+id/song_id" android:onClick="tabHandler"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
и я добавляю обработчик нажатия кнопки
public void tabHandler(View target){
artistButton.setSelected(false);
albumButton.setSelected(false);
songButton.setSelected(false);
if(target.getId() == R.id.artist_id){
tabHost.setCurrentTab(0);
artistButton.setSelected(true);
} else if(target.getId() == R.id.album_id){
tabHost.setCurrentTab(1);
albumButton.setSelected(true);
} else if(target.getId() == R.id.song_id){
tabHost.setCurrentTab(2);
songButton.setSelected(true);
}
}
Когда я использую этот метод, он дает мне больше свободы стилизации кнопок вкладок.