Ответ 1
Хорошо, вот некоторые вещи, о которых вам следует знать:
- Цвет фона, который вы устанавливаете в своем XML файле, относится к активности, а не к элементам ListItems, которые вы пытаетесь определить.
- Каждый элемент списка имеет свой собственный файл макета, который должен быть передан или завышен, если вы используете сложный макет для элемента списка.
Я попытаюсь объяснить это с помощью примера кода:
**** Давайте начнем с макета ListItems ** : сохраните его в вашей папке res/layout
вашего Android-проекта, скажем ** list_black_text.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Definig a container for you List Item-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Defining where should text be placed. You set you text color here-->
<TextView
android:id="@+id/list_content"
android:textColor="#000000"
android:gravity="center"
android:text="sample"
android:layout_margin="4dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Ну, простое расположение с TextView
, если быть точным. У вас должен быть идентификатор, назначенный TextView, чтобы использовать его.
Теперь придет к вам экран/активность/главный макет, так как я сказал, что вы определяете фон на экране с атрибутом android:background
. Я вижу, что вы также определили TextView, и я подозреваю, что вы пытаетесь определить там элемент содержимого/списка, который совсем не нужен.
Здесь отредактированный макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ListView
android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- REMOVED TEXT VIEW, AND KEEPING BACKGROUND WHITE -->
</LinearLayout>
И, наконец, самое главное, установите адаптер.
setListAdapter(new ArrayAdapter<String>(
this, R.layout.list_black_text, R.id.list_content, listItems));
Обратите внимание на ресурс компоновки, который мы передаем на адаптер R.layout.list_black_text
, и R.id.list_content
, который мы объявили ID TextView. Я также изменил ArrayAdapter на тип String, поскольку он является общим.
Надеюсь, это все объясняет. Отметьте мой ответ, если вы согласитесь.
Бесполезный, но быстрый способ быстрого исправления
Вы также можете сделать это с помощью быстрого исправления, если вы не хотите идти вперед с определением сложного макета и т.д.
Пока экземпляр адаптера объявляет внутренний класс для этого, вот пример кода:
ArrayAdapter<String> adapter=new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, listItems){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view =super.getView(position, convertView, parent);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
/*YOUR CHOICE OF COLOR*/
textView.setTextColor(Color.BLUE);
return view;
}
};
/*SET THE ADAPTER TO LISTVIEW*/
setListAdapter(adapter);