1

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

我正在尝试从 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是一种从数据库中获取字符串的方法。这工作正常。问题是我无法更新数组的值。它总是显示相同的。

任何想法?

4

6 回答 6

5

你来做这件事,

  String[] data = new String[4];

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

它可以帮助您。

于 2012-04-13T13:12:14.720 回答
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
}
于 2012-04-13T12:24:34.960 回答
0

你应该做这个

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

            for (int i = 0; i <data .length; i++)
            {
                data[i]=(info.getProduct(i));
            }
于 2012-04-13T12:24:52.793 回答
0

此循环将永远不会运行,您应该将其更改为:

for(int i =0;i<3;i++){
}
于 2012-04-13T12:27:14.370 回答
0

for循环的使用是这样的

for(initializatin;condition;increment)

而在您的情况下,它不是条件,它是一个语句,因此请继续努力。

你可以改成for (int i = 1; i <= 3; i++)

于 2012-04-13T12:27:29.813 回答
-1

不是 i==3,在 for 循环中使用 i<3

于 2012-04-13T12:25:09.160 回答