如何从SQLite数据库中检索数据并将它们放在一维字符串数组中?

时间:2018-05-04 07:07:58

标签: android

我的Android应用程序,我想将新数据放在SQLite数据库中创建的表中,但在此之前我想避免重复。我想要的方法首先是从数据库中检索数据,然后将其保存在一维的String数组中,然后运行数组以检查我想要添加到数据库中的数据是否在该字符串中,如果是的,然后数据将不会重新插入,如果不是,则插入数据。

我的主要问题是获取所有这些数据并将它们放入字符串数组中:下面是我的代码,它只给出数据库中的最后一项:

Cursor time_from_db=sqLite_database_helper_class.getting_all_call_logs_from_database();

            int i,n=time_from_db.getCount();

            String[] call_times_array=new String[n];

            while (time_from_db.moveToNext()){

                for (i=0;i<n;i++) {
                    call_times_array[i] = time_from_db.getString(4);
                }
            }

            for (i=0;i<n;i++){
                text_view_call_log_id=(TextView)findViewById(R.id.text_view_call_log_id);
                text_view_call_log_id.setText(call_times_array[i]+"\n\n");
            }

每当我运行此代码时,显示保存在该字符串数组中的记录是数据库中的最后一个,而数据库是包含500条记录的记录。所以,请帮助我!

3 个答案:

答案 0 :(得分:0)

text_view_call_log_id.setText(call_times_array[i]+"\n\n");

此代码仅显示最后一项,因为您没有正确添加它。请使用以下代码正确附加。

String result = "";
for (i=0;i<n;i++){
    result += call_times_array[i]+"\n\n";
}
text_view_call_log_id= (TextView)findViewById(R.id.text_view_call_log_id);
text_view_call_log_id.setText(result);

要从光标检索数据,请按以下步骤替换while循环

int i=0;
while (time_from_db.moveToNext()){
    call_times_array[i] = time_from_db.getString(4);
    i++;
}

答案 1 :(得分:0)

实际上,你应该追加你想要的所有字符串。

Cursor time_from_db = sqLite_database_helper_class.getting_all_call_logs_from_database();

        int i,n=time_from_db.getCount();

        String[] call_times_array=new String[n];

        while (time_from_db.moveToNext()){

            for (i=0;i<n;i++) {
                call_times_array[i] = time_from_db.getString(4);
            }
        }
String result = "";
for (i=0;i<n;i++){
    result += call_times_array[i]+"\n\n";
}
            text_view_call_log_id=(TextView)findViewById(R.id.text_view_call_log_id);
            text_view_call_log_id.setText(result );

答案 2 :(得分:0)

试试这个?

int i,n=time_from_db.getCount();

String[] call_times_array=new String[n];
int numIndex = 0;

while (time_from_db.moveToNext()){
    call_times_array[numIndex] = time_from_db.getString(4);
    ++numIndex;
}

String result = "";
for (i=0;i<n;i++){
    result += call_times_array[i]+"\n\n";
}
text_view_call_log_id=(TextView)findViewById(R.id.text_view_call_log_id);
text_view_call_log_id.setText(call_times_array[i]+"\n\n");