How to add a button dynamically in Android?

后端 未结 17 1126
礼貌的吻别
礼貌的吻别 2020-11-22 13:17

How to add a button dynamically in Android?

相关标签:
17条回答
  • 2020-11-22 13:51

    I've used this (or very similar) code to add several TextViews to a LinearLayout:

    // Quick & dirty pre-made list of text labels...
    String names[] = {"alpha", "beta", "gamma", "delta", "epsilon"};
    int namesLength = 5;
    
    // Create a LayoutParams...
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.WRAP_CONTENT, 
        LinearLayout.LayoutParams.FILL_PARENT);
    
    // Get existing UI containers...
    LinearLayout nameButtons = (LinearLayout) view.findViewById(R.id.name_buttons);
    TextView label = (TextView) view.findViewById(R.id.master_label);
    
    TextView tv;
    
    for (int i = 0; i < namesLength; i++) {
        // Grab the name for this "button"
        final String name = names[i];
    
        tv = new TextView(context);
        tv.setText(name);
    
        // TextViews CAN have OnClickListeners
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                label.setText("Clicked button for " + name); 
            }
        });
    
        nameButtons.addView(tv, params);
    }
    

    The main difference between this and dicklaw795's code is it doesn't set() and re-get() the ID for each TextView--I found it unnecessary, although I may need it to later identify each button in a common handler routine (e.g. one called by onClick() for each TextView).

    0 讨论(0)
  • 2020-11-22 13:54

    Actually I add to the xml layout file anything that could be used! Then from the source code of the specific Activity I get the object by its id and I "play" with the visibility method.

    Here is an example:

    ((Spinner)findViewById(R.id.email_spinner)).setVisibility(View.GONE);

    0 讨论(0)
  • 2020-11-22 13:55

    Check this up.

    LinearLayout ll_Main  = new LinearLayout(getActivity());
    LinearLayout ll_Row01 = new LinearLayout(getActivity());
    LinearLayout ll_Row02 = new LinearLayout(getActivity());
    
    ll_Main.setOrientation(LinearLayout.VERTICAL);
    ll_Row01.setOrientation(LinearLayout.HORIZONTAL);
    ll_Row02.setOrientation(LinearLayout.HORIZONTAL);
    
    final Button button01    = new Button(getActivity());
    final Button button02    = new Button(getActivity());   
    final Button button03    = new Button(getActivity());
    final Button button04    = new Button(getActivity());
    
    ll_Row01.addView(button01);
    ll_Row01.addView(button02);
    
    ll_Row02.addView(button03);
    ll_Row02.addView(button04);
    
    ll_Main.addView(ll_Row01);
    ll_Main.addView(ll_Row02);
    
    button04.setVisibility(View.INVISIBLE);
    button04.setVisibility(View.VISIBLE);
    
    0 讨论(0)
  • 2020-11-22 13:55

    If you want to add dynamically buttons try this:

    public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        for (int i = 1; i <= 5; i++) {
            LinearLayout layout = (LinearLayout) findViewById(R.id.myLinearLayout);
            layout.setOrientation(LinearLayout.VERTICAL);
            Button btn = new Button(this);
            btn.setText("    ");
            layout.addView(btn);
        }
    
    }
    
    0 讨论(0)
  • 2020-11-22 13:56

    Try following code.

    LinearLayout layout = (LinearLayout) findViewById(R.id.llayout); 
    layout.setOrientation(LinearLayout.VERTICAL);
    
    Button btn = new Button(this);
    btn.setText("Button1");
    
    layout.add(btn);
    
    btn = new Button(this);
    btn.setText(Button2);
    layout.add(btn);
    

    like this you add Buttons as per your requirements.

    0 讨论(0)
提交回复
热议问题