【问题标题】:Use a button to add other buttons, editText etc.使用按钮添加其他按钮,editText 等。
【发布时间】:2015-05-11 05:26:55
【问题描述】:

我需要能够使用“添加”按钮将按钮添加到布局中。问题是我需要每个按钮都有一个 OnClickListener()/onClick 方法。我在想每次按下“添加”按钮时,我都会向数组添加一个新按钮,但我不确定添加侦听器并为我创建的每个按钮实现一个 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();
            }

        }
    });

}

每次单击“添加”按钮时,我都需要添加计时表、按钮和侦听器。

【问题讨论】:

    标签: android button automation


    【解决方案1】:

    实现 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
                   }
           }
    }
    

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

    【讨论】:

      【解决方案2】:

      按照您的意愿设置所有点击监听器!

      在创建时调用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里,但是在点击之前它们会被隐藏起来。

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

      【讨论】:

      • 创建第三个按钮,第四个...时怎么样?除非我添加一个 switch 语句来设置每个按钮 btnThird btnFourth 等
      • 抱歉没听懂你的问题。您想知道在添加第二个按钮后如何知道何时添加第三个按钮?
      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2017-11-15
      • 2015-03-07
      相关资源
      最近更新 更多