Android - Как добавить виды в макет programmlty - PullRequest
0 голосов
/ 20 апреля 2020

Я хотел бы знать, есть ли какой-нибудь способ создать представление счетчика и несколько раз прикрепить его к макету.

Например, я хочу создать For loop, который создаст представление счетчика и прикрепить это макет.

Нечто подобное

КОД

 LinearLayout layout = new LinearLayout(this);
 for(int i = 0;i <4;i++){
 Spinner spinner = new Spinner(this);
 layout.addView(spinner);
 setContentView(layout);
 }

Нечто подобное.

Возможно ли создать?

1 Ответ

1 голос
/ 20 апреля 2020

Надеюсь, это поможет:

Предварительный просмотр изображения

Java:

LinearLayout root = findViewById(R.id.root);

        String[] spinnerArray = {"foo","baar"};

        for (int i=0;i<10;i++){
            Spinner spinner = new Spinner(MainActivity.this);

            LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            param.setMargins(5,5,5,5);
            spinner.setLayoutParams(param);

            ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerArray);
            spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(spinnerArrayAdapter);

            root.addView(spinner);
        }

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/root"
        android:layout_margin="20dp"
        android:orientation="vertical">

    </LinearLayout>


</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...