字符串无法转换为 android.widget.Button

String cannot be cast to android.widget.Button

我正在尝试动态添加按钮并将这些按钮连续添加。
在下面的代码摘要中,我遇到了这个错误:

java.lang.String cannot be cast to android.widget.Button

我一直在搜索类似的错误信息,但我的解决不了。
这是我的代码:

for (int i = 1; i < 5; i++) {
   a=a+a;
  FrameLayout.LayoutParams a = new FrameLayout.LayoutParams(262, 146);
  a.leftMargin = coorX; coorX = coorX + 250; 
  FrameLayout layout = (FrameLayout) findViewById(R.id.layout1);
  layout.addView (((Button)boton.get(i)),a); // here's the error
  ((Button)boton.get(i)).setOnClickListener(new View.OnClickListener(){
       @Override
       public void onClick(View view) {
          switch (((Button)view).getId()){
             case 1: recuadro("wǒ", 1); break;
             case 2: recuadro("hěn", 2); break;
             case 3: recuadro("ne", 3); break;
             case 4: recuadro("nĭ ne?", 4); break;
             case 5: recuadro("yě", 5); break;
          }
  });

}

boton 是一个字符串列表,您将其元素转换为 Buttons。因此,错误消息 java.lang.String cannot be cast to android.widget.Button.

尝试创建一个按钮而不是添加一个字符串

new Button("Here the string");

你的情况:

new Button(boton(i))

编辑

for (int i = 1; i < 5; i++) {
   a=a+a;
  FrameLayout.LayoutParams a = new FrameLayout.LayoutParams(262, 146);
  a.leftMargin = coorX; coorX = coorX + 250; 
  FrameLayout layout = (FrameLayout) findViewById(R.id.layout1);
  Button buttonToAdd = new Button(boton.get(i));
  layout.addView (buttonToAdd,a); // here's the error
  buttonToAdd.setOnClickListener(new View.OnClickListener(){
       @Override
       public void onClick(View view) {
          switch (((Button)view).getId()){
             case 1: recuadro("wǒ", 1); break;
             case 2: recuadro("hěn", 2); break;
             case 3: recuadro("ne", 3); break;
             case 4: recuadro("nĭ ne?", 4); break;
             case 5: recuadro("yě", 5); break;
          }
  });

}

如果我没看错的话是这样的