0

我正在研究android。我正在创建一个应用程序,在该应用程序中,我在单击按钮时动态创建了一组按钮。但是每次单击按钮时都会创建按钮。我希望这种情况发生一次。我可以清除开头的空格OnClickListener()?我不知道该怎么做。下面是我的代码。

button_generate.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                               //*-----------clearing the variables--------*
                        final TableLayout rel=(TableLayout)findViewById(R.id.tab1);



                        int k=0,i=0,j=0;

                                  count=3;
                                    System.out.println("count is"+count);

                                    while(j<count)      
                                    {



                                              TableRow tr = new TableRow(EspeakerActivity.this);
                                              //for(int c=1; c<=3; c++) {
                                                  Button b1 = new Button (EspeakerActivity.this);
                                                  Button b2= new Button (EspeakerActivity.this);
                                                  Button b3 = new Button (EspeakerActivity.this);
                                                  b1.setText("1");
                                                  b2.setText("2");
                                                  b3.setText("3");

                                                  b1.setTextSize(10.0f);
                                                 200));

                                                  tr.addView(b1, 100,50);
                                                  tr.addView(b2, 100,50);
                                                  tr.addView(b3, 100,50);

                                              rel.addView(tr);




                                        }


                            j++;
                                    }



                    }
                    }
                    );//*--------closing the button click------*
4

4 回答 4

1

提供按钮 ID,然后在添加按钮之前使用 findViewByID() 查看按钮是否已经存在。

于 2012-04-12T06:42:30.817 回答
0

您可以在每个按钮单击时清除 TableLayout,如下所示

....
onClick(View v) {
  final TableLayout rel=(TableLayout)findViewById(R.id.tab1);
  for(int x=0; x<rel.getChildCount(); x++)
  {
     View v = rel.getChildAt(x);
     rel.removeView(v);
  }
  ....
}
于 2012-04-12T06:59:54.777 回答
0
TableRow tr = new TableRow(EspeakerActivity.this);
tr.setId(/*some id*/)
                                              //for(int c=1; c<=3; c++) {
                                                  Button b1 = new Button (EspeakerActivity.this);
                                                  Button b2= new Button (EspeakerActivity.this);
                                                  Button b3 = new Button (EspeakerActivity.this);
                                                  b1.setText("1");
                                                  b2.setText("2");
                                                  b3.setText("3");

                                                  b1.setTextSize(10.0f);
                                                 200));

                                                  tr.addView(b1, 100,50);
                                                  tr.addView(b2, 100,50);
                                                  tr.addView(b3, 100,50);
//check rel already has that tr.. if it has don't add anythin.. better if you do it before even creating the TAbleRow
                                              rel.addView(tr);
于 2012-04-12T06:44:57.117 回答
0

在 Android 运行时隐藏线性布局

你可以参考这个链接,我相信你会得到你的答案。如果不能通过这个链接解决然后告诉我。

于 2012-04-12T06:46:01.597 回答