我在Style.xml
中有res/values/values-v14
。我的manifest
minSDK是14。
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
<item name="android:textColor">@color/donostiakirolak_texto_general</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/donostiakirolak_actionbar_blue</item>
</style>
<style name="DonostiakirolakListView">
<item name="android:background">@color/donostiakirolak_fondo_listview</item>
<item name="android:textColor">@color/donostiakirolak_texto_listview_title</item>
</style>
我有两个非常相似的片段。
oneFragment onCreateView
方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.instalaciones_en_lista_fragment, container, false);
lvInstalaciones = (ListView) view.findViewById(R.id.instalaciones_en_lista_fragment_lvInstalaciones);
lvInstalaciones.setOnItemClickListener(this);
InstalacionesEnListaConFlechayCategoriasAdapter ad = new InstalacionesEnListaConFlechayCategoriasAdapter(getActivity().getApplicationContext(), this.instalacionesConCategorias, tag);
this.lvInstalaciones.setAdapter(ad);
return view;
}
TwoFragment onCreateView
方法:( 它是相同的!)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.instalaciones_en_lista_fragment, container, false);
lvInstalaciones = (ListView)view.findViewById(R.id.instalaciones_en_lista_fragment_lvInstalaciones);
lvInstalaciones.setOnItemClickListener(this);
InstalacionesEnListaConFlechayCategoriasAdapter adapter = new InstalacionesEnListaConFlechayCategoriasAdapter(getActivity().getBaseContext(), instalacionesConCategorias, tag);
this.lvInstalaciones.setAdapter(adapter);
return view;
}
这是instalaciones_en_lista_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/instalaciones_en_lista_fragment_lvInstalaciones"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/DonostiakirolakListView">
</ListView>
我指定样式。有趣的是,文本显示oneFragment在屏幕上的两个颜色不同于twoFragment。 twoFragment没问题,oneFragment错了。
被修改
这是InstalacionesEnListaConFlechayCategoriasAdapter
代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
Instalacion inst = items.get(position);
String nombre = inst.getNombre();
//Analizamos si es necesario inflar el layout de la categoria
if(nombre.equalsIgnoreCase(pldTraducido) //PLD
|| nombre.equalsIgnoreCase(cpfTraducido) //CPF
|| nombre.equalsIgnoreCase(frcTraducido) //FRC
|| nombre.equalsIgnoreCase(frdTraducido) //FRD
|| nombre.equalsIgnoreCase(otrTraducido) //OTR
|| nombre.equalsIgnoreCase(pldTraducido) //PLD
|| nombre.equalsIgnoreCase(ppeTraducido) //PPE
|| nombre.equalsIgnoreCase(psrTraducido)){ //PSR //Para que todas las instalaciones no recorran todos los ifs, s epodria mejorar el código. con interaces items y item.isSecction
if (convertView == null || convertView.findViewById(R.id.custom_todaslasinstalaciones_categoria_header_titulo)==null)
{
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.custom_todaslasinstalaciones_header_categoria, null);
v.setOnClickListener(null);
v.setOnLongClickListener(null);
v.setLongClickable(false);
}
TextView nombreCategoria = (TextView) v.findViewById(R.id.custom_todaslasinstalaciones_categoria_header_titulo);
nombreCategoria.setText(nombre);
}
else{
if(tag.equalsIgnoreCase("DISTANCIA")){
//Mostramos mojon y distancia
//[Image+distancia][Nombre Instalación [Flecha]]
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.custom_todaslasinstalaciones_conflecha_mojon, null);
TextView tvNombre = (TextView) v.findViewById(R.id.custom_todaslasinstalaciones_conflecha_mojon_tv_nombreinstalacion);
tvNombre.setText(nombre);
TextView tvTextoKm = (TextView) v.findViewById(R.id.custom_todaslasinstalaciones_conflecha_mojon_tv_texto_km);
tvTextoKm.setText("km");
TextView tvDistancia = (TextView) v.findViewById(R.id.custom_todaslasinstalaciones_conflecha_mojon_tv_distancia);
tvDistancia.setText(inst.getDistancia());
}else{
//Sin mojon
//[Nombre Instalación [Flecha]]
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.custom_todaslasinstalaciones_conflecha, null);
TextView tvNombre = (TextView) v.findViewById(R.id.custom_todaslasinstalaciones_conflecha_tvnombreinstalacion);
tvNombre.setText(nombre);
}
}
return v;
}
和custom_todaslasinstalaciones_conflecha.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/custom_todaslasinstalaciones_conflecha_tvnombreinstalacion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:paddingRight="50dp"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:layout_toLeftOf="@+id/custom_todaslasinstalaciones_conflecha_img_flecha"
android:text="Nombre instalación que pasa si el nombre d ela instalacion"
android:textSize="18dp"
android:lines="4"
android:ellipsize="marquee"/>
<ImageView
android:id="@+id/custom_todaslasinstalaciones_conflecha_img_flecha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_action_next_item" />
</RelativeLayout>
答案 0 :(得分:0)
如果通过“文本显示oneFragment在屏幕上的颜色不同于twoFragment”你为listView项目设置textColor,那么你可能应该查看your_list_item.xml
文件中的textColor属性或InstalacionesEnListaConFlechayCategoriasAdapter
来更改项目文本颜色代码