динамически добавлять элементы управления в Android кнопки на кнопку

1

Это то, что я делаю в кодировании. Я хочу создавать элементы управления при нажатии кнопки. Количество раз, когда пользователь будет щелкать, я хочу добавить элементы управления для того же количества времени. Мне нужно добавить эти элементы управления в относительный макет. который я уже создал в xml-макете с одним набором элементов управления, уже в нем.. и хочу заставить его работать для большего количества элементов управления, если пользователь хочет редактировать.

    View DynamicView= new View(this);
    DynamicView.setId(123);                
    DynamicView.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT))

Ниже приведен код XML-макета.

<View
           android:layout_width="match_parent"
           android:layout_height="1dp"
           android:background="@android:color/black" />

проблемы: - 1) не хочу давать идентификаторы таким образом :(

  DynamicView.setId(123);

хотите назначить такие идентификаторы, которые мы можем назначить в макете xml

android:id="@+id/spnrIngredients1"

2) как давать значения для относительных макетов в кодировании, таких как

android:layout_toRightOf="@id/tvIngredientsName"
android:layout_toLeftOf="@id/tvIngredientsName"
android:layout_below="@id/tvIngredientsName"
android:layout_above="@id/tvIngredientsName"

3) как задать значения цветов фона. он не принимает шестнадцатеричные коды или что-то еще.. какой тип значений int он просит..?

Теги:
controls

1 ответ

0
Лучший ответ

2) Используйте LayoutParams для установки правил размещения представлений в RelativeLayout:

Button b = new Button(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT,
    RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW, viewID);
b.setLayoutParams(lp);
b.setText("Added at Bottom");
mParent.addView(b, lp);

Приведенный выше код будет поместить Button сильфонного вида с идентификатором viewID.

3) setBackgroundColor() (я думаю, что это метод, который вы используете) требует int, представляющего Color, вы можете установить его в этом методе следующим образом:

Color.RED 
Color.parse(Color.parseColor("#0077cc"))
android.R.color.black

1) Вы можете установить свои идентификаторы в файле values/ids.xml а затем установить их в свои представления, а затем ссылаться на представления этих идентификаторов:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="myfirstid" />    
</resources>

Теперь вы можете использовать id R.id.myfirstid в своем коде (я не знаю, это то, что вы хотите). ПРИМЕЧАНИЕ. Я не знаю, рекомендуется ли это.

  • 0
    Большое спасибо, особенно за это "addrule" и хранение "идентификаторов" в отдельном файле XML .. Я действительно искал что-то такое

Ещё вопросы

Сообщество Overcoder
Наверх
Меню