IllegalStateException:无法在视图中添加多个TextView

时间:2013-07-10 10:40:08

标签: java android layout textview illegalstateexception

首先,这是我的代码:

    public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout linLayout = new LinearLayout(this); 

        TextView text=new TextView(this);
        ArrayList<String> recup = recupData();
        List<TextView> lvariables = new ArrayList<TextView>();
        int i = 0;

        for(i=0;i<recup.size();i++){
            text.setText(recup.get(i)+"\n");
            lvariables.add(text);
            linLayout.addView(lvariables.get(i));
        }
        setContentView(linLayout);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

现在,我的问题是: 如何在同一个布局上显示N个文本视图(在循环中生成并存储在我的列表中)(例如,一个在另一个下面)! /强>

使用您可以看到的代码,我收到“IllegalState”异常!

这是XML文件,以防万一:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
</RelativeLayout>

(简短不是!?:/)

我很有道理,这个问题基本而愚蠢,但我不能让我的大脑去理解android哲学的运作方式!

如果某人有足够的耐心帮助解决我的问题,即使在StackOverFlow上已经讨论了一百万次,我也会非常感激!

我非常感谢您提供的任何帮助! 哦,拜托,请原谅我的英语,我是法国人......:D

1 个答案:

答案 0 :(得分:2)

你总是添加不同的TextView

变化:

for(i=0;i<recup.size();i++){
      text.setText(recup.get(i)+"\n");
      lvariables.add(text);
      linLayout.addView(lvariables.get(i));
}

for(i=0;i<recup.size();i++){
         TextView text=new TextView(this);
        text.setText(recup.get(i)+"\n");
        lvariables.add(text);
        linLayout.addView(text);
 }

编辑:要将LinearLayout的方向更改为垂直:

 LinearLayout linLayout = new LinearLayout(this); 
 linLayout.setOrientation(LinearLayout.VERTICAL);