2012-03-08 5 views
1

커서로 ListFragment를 채 웁니다. 나는 목록 배경이 흰색으로 설정되어 있고 어떤 이유로 텍스트도 흰색으로 설정되어 있습니다. 레이아웃 xml에서 textColor 특성을 변경하려고 시도했지만 효과가없는 것 같습니다. 누군가 내가 누락 된 부분을 지적 할 수 있습니까? 감사. ListFragment에서 ListFragment 항목의 텍스트 색상을 변경할 수 없습니다.

:

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

    String[] from = {DBConstants.COL_FAMILY_NAME}; 
    int[] to = {android.R.id.text1}; 

    getLoaderManager().initLoader(FAMILY_LOADER, null, this); 
    adapter = new SimpleCursorAdapter(getActivity().getApplicationContext(), R.layout.simple_spinner_drop_down_view, null, from, to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 
    setListAdapter(adapter); 
} 


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

    registerForContextMenu(getListView()); 

    getListView().setBackgroundResource(android.R.color.white); 
    getListView().setCacheColorHint(android.R.color.transparent); 
} 

목록 항목 레이아웃 :

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerItemText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="15dip" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="#000000" /> 

답변

1

텍스트가 흰색이 아닌 것으로 의심됩니다. 잘못된 TextView에 다시 바인딩됩니다. 나는 당신이이 줄을 변경할 필요가 있다고 생각 :

int[] to = {android.R.id.text1}; 

이에 :

int[] to = {R.id.spinnerItemText}; 
+0

그게 전부입니다. 나는 'android.R.layout.simple_list_item_1'을 사용하고 있었지만 그 텍스트는 흰색이고 작동하지 않으므로 내 자신을 사용했습니다. 바인드를 업데이트하는 걸 잊은 것 같습니다. 그것을 발견해 주셔서 감사합니다. – Spencer

0

나는

android:textAppearance="?android:attr/textAppearanceLarge" 

는 텍스트 흰색하고있다 생각합니다. textColor를 설정해도 색상이 재정의되지 않는 이유는 모르겠지만 여기에 지정된 색상으로 나만의 스타일을 만들 수 있습니다.

0

이 시도 :

adapter = new SimpleCursorAdapter(getActivity().getBaseContext(), 
     R.layout.simple_spinner_drop_down_view, null, from, to, 
     CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

getBaseContextgetApplicationContext 트릭을 수행 교체.

관련 문제