我创建了一个完美的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>
答案 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
位更改为引用自定义适配器。