使用按钮添加其他按钮、editText 等。

Use a button to add other buttons, editText etc.

我需要能够使用 "add" 按钮将按钮添加到布局。问题是我需要每个按钮都有一个 OnClickListener()/onClick 方法。我在想,每次按下 "add" 按钮时,我都会向数组添加一个新按钮,但我不确定是否添加侦听器并为我创建的每个按钮实现 onClick 方法。

   public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final SmartChronometer chrono = (SmartChronometer) findViewById(R.id.chrono);

    final Button start = (Button) findViewById(R.id.button2);
    start.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (chrono.isRunning())
                 chrono.pause();
            else {

                chrono.chronoStart();
            }

        }
    });

}

每次单击 "Add" 按钮时,我都需要添加计时器、按钮和监听器。

随心所欲地设置所有的点击监听器!

在创建时调用 findViewById(R.id.btnSecond).setVisibility(View.GONE);,然后在单击第一个按钮时调用

Button btnSecond;

...

  public void onClick(View v) {

    findViewById(R.id.btnSecond).setVisibility(View.VISIBLE);

 if (btnSecond.getVisibility() == View.VISIBLE); {    
    findViewById(R.id.btnThird).setVisibility(View.VISIBLE);}    
    }

通过这种方式,您可以将所有信息放在 java 文件中,将所有按钮放在 xml 中,但在单击之前它们将被隐藏。

这是一种方式,其他答案我来。祝你好运:)

实现 OnClickListener

Button add = (Button) findViewById (R.id.addButton);
add.setOnClickListener (this);

List<Button> buttons = new ArrayList <Button>();
for (int i = 0; i < buttons.size (); i++){
       buttons.get (i).setOnClickListener (this);
}

@Override
public void onClick (View v){
      for (int i = 0; i < buttons.size (); i++){
               if (v.getId () == buttons.get (i).getId ()){
                       // do stuff you want
               }else if (v.getId() == R.id.addButton){
                     //add button
               }
       }
}

希望这会起作用,没有测试它。