动态填充字符串数组

时间:2012-04-13 12:22:17

标签: java android arrays

我正在尝试为我父母的业务制作应用,但此时我发现了一个问题。

我正在尝试从SQLite数据库中获取一些字符串并将它们存储到数组中。

我正在尝试这个:

            //This opens the db
            SQLManager info = new SQLManager(this);
            info.open();              

            String[] data = {"", "", "", ""};

            for (int i = 1; i == 3; i++)
            {
                data[i]=(info.getProduct(i));
            }

            info.close();
            tv.setText(data[0]);
            tv.setText(data[1]);
            tv.setText(data[2]);

info.getproduct是一种从数据库中获取字符串的方法。这很好用。问题是我无法更新数组的值。它总是显示相同的。

有什么想法吗?

6 个答案:

答案 0 :(得分:4)

你这样做,

  String[] data = new String[4];

        for (int i = 0; i <data .length; i++)
        {
            data[i]=(info.getProduct(i));
        }

它帮助你。

答案 1 :(得分:0)

for循环中的第二个参数应该用作while - 条件,这意味着循环将在其为真时运行,因为i从1开始,它不会为3,因此循环立即终止。 您可能想要一个如下所示的循环:

for( int i = 1; i<=3; i++ ){ //Are you sure you want to start from 1? The first element in an array has index 0.
    //Loop
}

答案 2 :(得分:0)

你应该这样做

String[] data = {"", "", "", ""};

            for (int i = 0; i <data .length; i++)
            {
                data[i]=(info.getProduct(i));
            }

答案 3 :(得分:0)

这个循环永远不会运行你应该把它改成:

for(int i =0;i<3;i++){
}

答案 4 :(得分:0)

使用for循环就像这样

for(initializatin;condition;increment)

虽然在你的情况下,它不是一个声明,所以努力。

您可以更改为for (int i = 1; i <= 3; i++)

答案 5 :(得分:-1)

不是i == 3,在for循环中使用i&lt; 3