2016-10-05 4 views
0

Я хочу, чтобы генерировать управление динамически по пользовательскому значению. Как я есть EditText для ControlID, управления Ширина, высота и т.д. управления на основе этого значения я хочу, чтобы генерировать КонтролируйтеКак создать динамический контроль в Android?

LinearLayout L1 = new LinearLayout(this); 
    L1.setOrientation(LinearLayout.VERTICAL); 

    LinearLayout.LayoutParams L1paeam = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
    L1.setLayoutParams(L1paeam); 

    TextView T1 = new TextView(this); 
    T1.setText(R.string.Dynamic_text); 
    L1.addView(T1); 

    Button B1=new Button(this); 
    B1.setText("Dynamic Button"); 
    L1.addView(B1); 

    setContentView(L1); 

В этом коде управления Идентификатор Layout_height и layout_width указаны, но я хочу их указанному пользователем

ответ

0

Вы можете добавить любой вид в контейнер вида (LinearLayout, RelativeLayout и т. д.) и удалить эти представления во время выполнения. Создайте представление и задайте параметры макета для этого вида.

0

Здесь решение, которое я нашел.

public void generateButton(String Id,int Width,int Height,String text){ 
    @IdRes 
      int id = Integer.parseInt(Id); 
    LinearLayout.LayoutParams L1param = new LinearLayout.LayoutParams(Width, Height); 
    final Button B1=new Button(this); 
    B1.setId(id); 
    B1.setText(text); 
    B1.setLayoutParams(L1param); 
    B1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Button click operation goes here 
     } 
    }); 
    layout_main.addView(B1); 
}