Я недавно начал разрабатывать для Android и теперь застрял! Я создал список, но стандартный цвет черный, теперь я хочу иметь возможность отображать текст в любом цвете, который я хочу. Это деятельность.

public class DisplayMalePage extends ActionBarActivity {

String[] maleArray = { "a","b","c"};

   private ListView maleListView;
   private ArrayAdapter maleArrayAdapter;



  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_male_page);

    maleListView = (ListView) findViewById(R.id.maleList);
    maleArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, maleArray);
    maleListView.setAdapter(maleArrayAdapter);
  }

Но это (я думаю, из-за simple_list_item_1) дает мне черный цвет. Также я хотел бы, чтобы входные данные моего массива были строками, чтобы было легче изменить язык.

В конце концов, я хотел бы иметь список с двумя верхними текстами, разделительной полосой, а затем остальной частью списка (все они будут интерактивными).

Надеюсь, кто-то понимает, о чем я, ха-ха.

0
goodmints 16 Дек 2014 в 20:12
По крайней мере, я не сделал! :(
 – 
Rohit5k2
16 Дек 2014 в 20:22
Проверьте это руководство, надеюсь, оно поможет.
 – 
Usama Sadiq
29 Май 2015 в 11:18

2 ответа

Лучший ответ

Вы не можете изменить какую-либо часть макета списков с помощью ArrayAdapter по умолчанию. Вам необходимо определить свой собственный CustomArrayAdapter.

http://www.vogella.com/tutorials/AndroidListView/article.html#adapterown

Эта ссылка - очень полезное руководство о том, как это сделать.

1
nick92 16 Дек 2014 в 20:31

Создайте свой собственный макет, который вы будете использовать в своем элементе списка. Убедитесь, что он содержит Textview с идентификатором text1. Что-то вроде этого:

layout/my_list_item.xml

<TextView 
    android:id-"@+id/text1"
    android:textColor="@android:color/white"
    ...... />

Затем используйте этот макет в инициализации ArrayAdapter вместо android.R.layout.simple_list_item_1.

maleArrayAdapter = new ArrayAdapter(this, R.layout.my_list_item, maleArray);

Примечание. Если вы хотите что-то более сложное, кроме отображения простого текста, вам следует использовать собственный ArrayAdapter, как указал @ user3567040.

1
Rafi Kamal 16 Дек 2014 в 20:40