Android 将文本视图数组动态添加到线性布局

Android 将文本视图数组动态添加到线性布局,android,layout,textview,Android,Layout,Textview,我试图添加一个TextView数组,我将其定义为一个公共变量,但当我运行应用程序时,一旦进入for循环,它就会强制关闭。代码如下: LinearLayout myLayout = (LinearLayout) findViewById(R.id.my_layout); LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

我试图添加一个TextView数组,我将其定义为一个公共变量,但当我运行应用程序时,一旦进入for循环,它就会强制关闭。代码如下:

LinearLayout myLayout = (LinearLayout) findViewById(R.id.my_layout);
            LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT,    LayoutParams.WRAP_CONTENT);
            pairs=new TextView[num_match+1];
            for(int l=1;l<=num_match;l++)
            {
                pairs[l].setTextSize(15);
                pairs[l].setLayoutParams(lp);
                pairs[l].setId(l);
                pairs[l].setText(m1[l]+" - "+m2[l]);
                myLayout.addView(pairs[l]);
            }
LinearLayout myLayout=(LinearLayout)findViewById(R.id.my_布局);
LayoutParams lp=新的LayoutParams(LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
pairs=新文本视图[num_match+1];

对于(int l=1;l我认为在使用它之前需要初始化
pairs[l]
,如下所示:

    for(int l=1;l<=num_match;l++)
    {
        pairs[l] = new TextView();
        //...
    }

for(int l=1;l为什么要有一个
文本视图数组
?您能用
列表视图
替换它吗


我认为这是一种更好的方法。请尝试。

您需要创建新的TextView以放入TextView数组,并且您正在跳过第一个索引(
对[0]
),这将导致以后出现问题:

pairs=new TextView[num_match];
for(int l=0; l<num_match; l++)
{
    pairs[l] = new TextView(this);
    pairs[l].setTextSize(15);
    pairs[l].setLayoutParams(lp);
    pairs[l].setId(l);
    pairs[l].setText(m1[l + 1]+" - "+m2[l + 1]);
    myLayout.addView(pairs[l]);
}

提供一些细节,比如LogCat错误。为什么会被否决?(这不是完美的,但它的基本观察结果是正确的。)当我放置pairs[l]=newtextView(this)时;eclipse在newtextView(this)下面加下划线,错误是:当我放置pairs[l]=newtextView(this)时,构造函数TextView(new View.OnClickListener(){})是未定义的;eclipse在new TextView(this)下面加下划线,错误显示:构造函数TextView(new View.OnClickListener(){})未定义,请在
this
之前添加您的类名,例如
MyActivity.this
。谢谢,它现在不显示错误。但是我想在我的活动中看到TextView,但是当我设置setContentView时(R.Layout.activity_main)什么也没发生。我给线性布局分配了id,并将其命名为myLayout,也许我应该用它来调用该方法?sry为打扰这么多添加了一个示例,我希望这会对您有所帮助。
public class Example extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout myLayout = (LinearLayout) findViewById(R.id.my_layout);
        LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT,    LayoutParams.WRAP_CONTENT);
        TextView[] pairs=new TextView[4];
        for(int l=0; l<4; l++)
        {
            pairs[l] = new TextView(this);
            pairs[l].setTextSize(15);
            pairs[l].setLayoutParams(lp);
            pairs[l].setId(l);
            pairs[l].setText((l + 1) + ": something");
            myLayout.addView(pairs[l]);
        }

    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" />