2012-05-17 4 views
6

У меня есть белый фон, но с этим расположением я заблокирован, потому что цвет текста тоже белый, и я не могу найти решение, чтобы оно было красным, поэтому я могу установить свой белый фон, любую помощь пожалуйста (как я вижу, что я вынужден использовать красный фон, чтобы я мог видеть белый текст).Изменение цвета текста

public class QueueListActivity extends ListActivity { 
// LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS 
ArrayList<String> listItems = new ArrayList<String>(); 
String newtext; 
String listFiles; 
// DEFINING STRING ADAPTER WHICH WILL HANDLE DATA OF LISTVIEW 
ArrayAdapter<String> adapter; 

// RECORDING HOW MUCH TIMES BUTTON WAS CLICKED 
int clickCounter = 0; 

ArrayList<String> selectedItems = new ArrayList<String>(); 


@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.queuelistactivity); 
    Bundle extras1 = getIntent().getExtras(); 
    listFiles=GetFiles(); 

    StringTokenizer tokonizer1 = new StringTokenizer(listFiles,";"); 
    while(tokonizer1.hasMoreElements()){ 
     Log.i("verif","0"); 
     listItems.add(tokonizer1.nextToken());} 
      initializeListItems(); 



    if (extras1 != null) { 
     newtext = extras1.getString("newitem"); 
     listItems.add(newtext); 
     adapter.notifyDataSetChanged(); 
     getListView().setItemChecked(listItems.size() - 1, false); 

    } 




} 



// METHOD WHICH WILL HANDLE DYNAMIC INSERTION 
public void addItems(View v) { 

    Intent intent = new Intent(QueueListActivity.this, AjouterFiles.class);  
    QueueListActivity.this.startActivity(intent); 


    /* 
    listItems.add(userName); 
    adapter.notifyDataSetChanged(); 
    getListView().setItemChecked(listItems.size() - 1, false);*/ 


} 

public void deleteItems(View v) { 
    String toDelete = ""; 
    SparseBooleanArray sp = getListView().getCheckedItemPositions(); 

    for (int i = 0; i < sp.size(); i++) { 
     toDelete += ";" + sp.get(i); 
     if (sp.get(i)) { 
      listItems.remove(i); 
     } 

    } 
    adapter.notifyDataSetChanged(); 
    Toast.makeText(getApplicationContext(), toDelete, Toast.LENGTH_LONG).show(); 
    initializeListItems(); 
} 

private void initializeListItems() { 
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, listItems); 
    setListAdapter(adapter); 
    ListView lv = getListView(); 
    lv.setCacheColorHint(Color.rgb(0, 0, 0)); 
    lv.setBackgroundColor(Color.rgb(178, 34, 34)); 


    for (int i = 0; i < lv.getCount(); i++) { 
     lv.setItemChecked(i, false); 
    } 
} 
+0

скопировать ур XML файл здесь – Abhinai

ответ

11

Лучший трюк является скопировать содержимое файла макета из android.R.layout.simple_list_item_multiple_choice и сделать свой собственный макет (my_list_view и отредактируйте файл xml и измените цвет текста.

adapter = new Arr ayAdapter (это, my_list_view, listItems);

Редактировать Сохранить этот файл как my_list_view;

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 
    android:backdround="#FFFFFF" //white background 
    android:textColor="#000000" //black color text 
/> 
+0

как я могу найти android.R.layout.simple_list_item_multiple_choice? –

+1

вы можете просто Ctrl + mousehover на android.R.layout.simple_list_item_multiple_choice .. но я вставил этот код в – vnshetty

+0

Ошибка: Ошибка: типы строк не разрешены (в 'layout_width' со значением 'match_parent'). –

1

Вы можете установить его в макете XML:

<TextView 
... 
... 
android:textColor="#FF0000" > 
</TextView> 

Или программно:

textview.setTextColor(Color.RED); 
//textview must be defined in your class 
+1

если вы можете увидеть я не имею TextView !! –

0

лучше написать индивидуальный адвентер.

чередуются, но не хорошо soltuon это использовать этот макет XML INSpace из android.R.layout.simple_list_item_multiple_choice

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 


    android:textColor= Color.Red  //please correct the syntax 
/> 

Это же макет android.R.layout.simple_list_item_multiple_choice но ваш сейчас делают то же самое в верстку с теми же идентификаторами, чтобы внести изменения в него.

+0

Я создаю новый xml-файл и копирую его в или что? –

+0

создайте новый xml в макете с любым вашим именем, вставьте этот код в этот xml и используйте этот xml вместо android.R.layout.simple_list_item_multiple_choice в своем адаптере. Поскольку pre определяет, что ArrayAdapter будет искать идентификатор «text1» в представлении get и получит это, как у вас, это также в вашем xml. –

+0

У меня теперь есть ошибка: Ошибка: типы строк не разрешены (в 'layout_width' со значением 'match_parent'). –

0

вы можете попробовать настраиваемое представление списка .. по ссылке click here

0
<TextView 
     android:id="@+id/text_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Name" 
     android:textColor="@color/white" 
     android:textSize="11dp" 
/> 
Смежные вопросы