两个不同片段中的相同style.xml不起作用



我在res/values/values-v14中具有此Style.xml。在我的 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>

i指定样式。有趣的是,文本显示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>

如果通过"文本显示OneFragment在屏幕twoffofment上的颜色不是相同的颜色"您的textColor for ListView项目,那么您应该查看 your_list_item.xml file textColor properties或 InstalacionesEnListaConFlechayCategoriasAdapter,以进行更改项目文本颜色代码

最新更新