ListFragment自定义字体

时间:2014-04-04 19:34:12

标签: listview fragment typeface

我创建了一个完美的ListFragment,我可以更改listview的背景颜色,但是我无法更改列表中项目的字体。我怎么能这样做?

这是我的listfragment.java:

public class Opciones extends ListFragment {

 private String myfriends[];
  private String sexo;
  LinearLayout layoutopciones;
  View view;
 public Opciones() {

  myfriends = new String[] {
    "Modificar datos perfil", 
    "Borrar perfil",
    "Borrar progreso ejercicios",
    "Opcion",
    "Opcion", 
    "Opcion",
  };
 }


 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);




 ListAdapter listAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, myfriends);
  setListAdapter(listAdapter); 
 } 

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

     view=inflater.inflate(R.layout.fragmentopciones, container, false);

  return inflater.inflate(R.layout.fragmentopciones, container, false);

 }
 @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        sexo=   ((MainActivity)getActivity()).getMyData();
          layoutopciones=(LinearLayout)view.findViewById(R.id.layoutopciones);
          if(sexo.equals("mujer")){    
                 layoutopciones.setBackgroundColor(Color.parseColor("#E37AA9"));
             }  
    }}

这是fragmentopciones.xml:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/layoutopciones"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#56B6C3"
 android:orientation="vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp" >

 <ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
 android:drawSelectorOnTop="false" >

 </ListView>


 </LinearLayout>

1 个答案:

答案 0 :(得分:0)

这是一个令人难以置信的痛苦,但实际上不应该这样做。这就是我必须做的事情。

1)创建一个自定义类来处理加载自定义字体。但是,这有严重的内存泄漏问题,你必须避免这些问题。我按照#7中的代码进行了操作:https://code.google.com/p/android/issues/detail?id=9904

请注意,您必须包含字体路径,如下所示:“fonts / your_font.ttf”

2)创建自定义适配器以允许您访问自定义字体类。见这里:http://www.ezzylearning.com/tutorial.aspx?tid=1763429

3)将new ArrayAdapter位更改为引用自定义适配器。