0

我已经动态创建了一些按钮,当我开始活动时一切都很好,但是当我旋转屏幕或按下按钮时,我失去了所有按钮,我用谷歌搜索然后我发现没有 ID 的视图不能已保存,所以我想为它们动态设置 ID,我想在 R.java 文件中找到它们,名称如下:

     public static final class id {

            public static final int  Button1=0x7f070027;
            public static final int  Button2=0x7f070024;

                                  }

我试过 setId() 但问题没有解决,我认为使用 setID() 时不一样;并在字符串文件中手动设置 id,所以我需要你的帮助提前感谢(^_^)。

这是我的源代码:

TableLayout TL = (TableLayout) findViewById(R.id.tlRDV);
                TL.removeAllViews();
                j = 0;
                for (int i = 0; i < nbH; i++) {

                    TableRow tr = new TableRow(this);
                    tr.setLayoutParams(new LayoutParams(
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT));
                    tr.setId(View.generateViewId());
                    TextView text_view = new TextView(this);
                    Button b = new Button(this);

                    text_view.setWidth(1000);
                    j = j + averageConsultationTime;
                    HMA = ((BeganConsultationH * 60) + (BeganConsultationM))
                            + j - averageConsultationTime;

                    int h = HMA / 60;
                    int m = HMA % 60;
                    b.setBackgroundColor(0xff99cc00);
                    b.setText(h + "H" + m);
                    tr.addView(b);

                    for (int k = 0; k < 7; k++) {
                        Button but = new Button(this);
                        but.getId(View.generateViewId());
                        but.setText("" + but.getId());
                        but.setOnClickListener(getOnClickDoSomething(but,
                                jours[k] + "_" + h + "H" + m));

                        tr.addView(but);

                    }
                    TL.addView(tr);

                }

            }

        }

    }  
4

0 回答 0