Как создать Spinner в Android с Java? - PullRequest
1 голос
/ 07 января 2020

Я хочу добавить спиннер в мое приложение android из моего кода Java без необходимости прикасаться к файлу xml, поэтому я выполнил некоторый поиск и нашел некоторый код, который выполнит часть этого, но все равно использовал "findViewById", чтобы получить спиннер из xml, я заменил его на: Spinner spinner = new Spinner (context);

И все же в моем коде есть "R.layout.spinner_item", в моем случае как обойти это? Код выглядит так:

final Spinner spinner = new Spinner(context);
String[] plants = new String[]{"Laceflower", "California sycamore", "Mountain mahogany", "Butterfly weed", "Carrot weed"};
final List<String> plantsList = new ArrayList<>(Arrays.asList(plants));
final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, plantsList)     <--- ?
{
  @Override
  public View getDropDownView(int position, View convertView, ViewGroup parent)
  {
    View view = super.getDropDownView(position, convertView, parent);
    TextView tv = (TextView) super.getDropDownView(position, convertView, parent);
    if (position % 2 == 1)
    {
      tv.setTextColor(Color.parseColor("#FF7C7967"));
      tv.setBackgroundColor(Color.parseColor("#FFC3C0AA"));
    }
    else
    {
      tv.setTextColor(Color.parseColor("#FF657A86"));
      tv.setBackgroundColor(Color.parseColor("#FFB5DCE8"));
    }
    return view;
  }
};

spinnerArrayAdapter.setDropDownViewResource(R.layout.spinner_item);     <--- ?
spinner.setAdapter(spinnerArrayAdapter);

1 Ответ

1 голос
/ 07 января 2020

Обновите ваш код, как показано ниже, чтобы создать Spinner во время выполнения без layout файла

//Create spinner dynamically
Spinner spinner = new Spinner(context);

//Ready your data for spinner
String[] plants = new String[]{"Laceflower", "California sycamore", 
        "Mountain mahogany", "Butterfly weed", "Carrot weed"};

//Create ArrayAdapter for spinner with system default layout for views
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
        this, 
        android.R.layout.simple_spinner_item, 
        plants
);

//Attach adapter to spinner
spinner.setAdapter(spinnerArrayAdapter);
...