динамически добавлять элементы управления в Android кнопки на кнопку - PullRequest
1 голос
/ 02 марта 2012

Это то, что я делаю в коде, я хочу создавать элементы управления нажатием кнопки. Сколько раз пользователь нажимает, я хочу добавить элементы управления в течение того же количества времени. Я должен добавить эти элементы управления в относительной компоновке. который я уже создал в макете 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 он запрашивает ..?

1 Ответ

0 голосов
/ 28 марта 2012

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 ниже представления с идентификатором * 1007.*.

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>

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

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