2014-04-11 34 views
1

我在我的Layout上有兩個ListView和一個EditText。我必須先展示一個,點擊其中一個選項後,我必須展示另一個ListViewAndroid:ListView文本顏色是不可見的,我不希望它不可見

一切工作正常,但是當我必須拿出第二ListView出現的問題,我不能看到選項的文字,我只能看到文字時,我按下選項,並按下我可以看到白色的文字(與背景顏色相同)。

我不明白爲什麼會發生這種情況,因爲我的ListView一個像第二個那樣定義,但其中一個顯示黑色文本和第二個白色文本。除了它們的位置,我不會更改任何ListView屬性。我把代碼和xml文件,如果它可以幫助,謝謝!

這裏是我的課的一部分,所有與ListView S:

public class activitySelectEnvironment extends Activity{ 

ListView lvEnvironment; 
ListView lvPlanes; 


@SuppressLint("InlinedApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE); 
    setContentView(R.layout.activity_select_environment); 
    myIntent = new Intent(); 

    lvEnvironment = (ListView)findViewById(R.id.listViewEnvironment);  
    lvPlanes = (ListView)findViewById(R.id.listViewPlane); 

    //lvPlanes.setVisibility(View.GONE); 
    lvEnvironment.setVisibility(View.VISIBLE); 
} 

@Override 
public void onResume() 
{ 
    super.onResume();  
    registerReceiver(receptorBroadcast, filtroIntents); 
    if (!verificaConexion(getApplicationContext())) 
    {  
     Toast.makeText(getApplicationContext(), "No hay conexión a Internet.", Toast.LENGTH_SHORT).show(); 
    } 
    else 
    { 
     RequestEdificios re = new RequestEdificios(this, IP, user, password);  

     re.execute(""); 
    } 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    this.unregisterReceiver(receptorBroadcast); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

/*******************************************************/ 
    /********  Receptor de broadcast  ********/ 
    /*******************************************************/ 
public class ReceptorBroadcast extends BroadcastReceiver 
    {  
     @Override 
     public void onReceive(Context arg0, Intent intent) 
     { 
      if(RequestEdificios.ACTION_SINCRONIZACION_FINALIZADA.equals(intent.getAction())) 
      { 
       buildingId = intent.getStringArrayListExtra("id_edificio"); 
       buildingArray = intent.getStringArrayListExtra("buildingArray"); 
       RefrescaPantalla(intent.getStringArrayExtra("edificios")); 
      } 
      if(RequestPlanes.ACTION_SINCRONIZACION_PLANES_FINALIZADA.equals(intent.getAction())) 
      {       
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_expandable_list_item_1, android.R.id.text1, intent.getStringArrayExtra("planos"));    

       lvEnvironment.setVisibility(View.GONE); 
       //lvPlanes.setVisibility(View.VISIBLE); 

       //Assign adapter to ListView 
       lvPlanes.setAdapter(adapter); 

        //ListView Item Click Listener 
       lvPlanes.setOnItemClickListener(new OnItemClickListener() 
       { 
        /* code */ 
        } 
      }); 
     } 
     if(InsertPaths.ACTION_SINCRONIZACION_INSERT_FINALIZADA.equals(intent.getAction())) 
     { 
      Toast.makeText(getApplicationContext(), "Plano subido a la base de datos." , Toast.LENGTH_LONG).show(); 

      myIntent.setClass(activitySelectEnvironment.this, activitySelectFoot.class);     
      startActivity(myIntent); 
     } 
    } 
} 

private void RefrescaPantalla(String[] result) 
{  
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, android.R.id.text1, result); 

     //Assign adapter to ListView 
    lvEnvironment.setAdapter(adapter); 

     //ListView Item Click Listener 
    lvEnvironment.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      if (!verificaConexion(getApplicationContext())) 
      {  
       Toast.makeText(getApplicationContext(), "No hay conexión a Internet.", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      {  
       /* code */ 
      } 
     } 
    }); 
} 

public static boolean verificaConexion(Context ctx) 
{  
    boolean bConectado = false;  
    ConnectivityManager connec = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);  
    // No sólo wifi, también GPRS  
    NetworkInfo[] redes = connec.getAllNetworkInfo();  
    // este bucle debería no ser tan ñapa  
    for (int i = 0; i < 2; i++) 
    {   
     // ¿Tenemos conexión? ponemos a true   
     if (redes[i].getState() == NetworkInfo.State.CONNECTED) 
     {    
      bConectado = true;   

     }  
    } 
    return bConectado;  
} 
} 

這裏是佈局的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="match_parent" > 

<TextView 
    android:id="@+id/txtHead" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="78dp" 
    android:layout_marginTop="39dp" 
    android:background="@drawable/edittext_rounded_corners" 
    android:text="Primero indique a que planta pertenece y después seleccione el edificio:" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="25dp" /> 

<ListView 
    android:id="@+id/listViewEnvironment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/txtHead" 
    android:layout_below="@+id/txtHead" 
    android:layout_marginTop="30dp" > 
</ListView> 

<ListView 
    android:id="@+id/listViewPlane" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/txtHead" 
    android:layout_below="@+id/txtHead" 
    android:layout_marginTop="30dp" > 
</ListView> 

</RelativeLayout> 

感謝所有!

+0

在哪個版本和設備上運行你的應用程序? –

+0

@MayurRaval我使用的是android 4.4 API等級:19 – Imrik

+0

@MayurRaval我添加了你告訴我的這一行,但它不會改變任何東西:( – Imrik

回答

0

問題是上下文,我給一個壞的情況下,這改變列表視圖文本的文本顏色,第二的ListView正確的上下文是:getBaseContext(),所以正確的適配器是:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_expandable_list_item_1, android.R.id.text1, intent.getStringArrayExtra("planos")); 

希望這可以幫助別人! :)