从Sqlite游标加载器中拉出数据

问题描述 投票:0回答:1

确定,我有一个具有Listview并使用sqlite数据填充的应用程序。但我也希望能够通过电子邮件将每个视图的内容发送给邮件正文。我尝试使用全局字符串变量执行此操作,并在BindView部分的CarCursorAdapter活动中捕获数据,如下所示:

   // Update the TextViews with the attributes for the current move
       vinTxtView.setText(vinStr);
        dateTxtView.setText(dateStr);
        mvFromTxtView.setText(mvFrom);
        mvToTxtView.setText(mvTo);
        MyProperties.getInstance().bodyStrGlobal =   MyProperties.getInstance().bodyStrGlobal+vinStr+"-"+mvFrom+"->"+mvTo+"-"+dateStr+"\n";

然后,我在电子邮件意图中使用该字符串。但是问题在于,每次填充列表视图时,它都会不断添加到此字符串中,因此我得到了各种双精度条目。选择电子邮件功能后,仅捕获一次的最佳方法是什么?还是在某个地方将字符串重置为null?也许只是从每个listview项而不是从游标加载器中读取?也许有一种方法可以遍历数据库表,但是我遇到了各种各样的错误,没有运气。

sqlite listview android-cursorloader
1个回答
0
投票

发现这可以正常工作。我的MainActivity现在很忙,但是一切正常。

 public String getEmailText(){
        String tempStr = "";
        String[] projection = {
                CarEntry._ID,
                CarEntry.COLUMN_CAR_VIN,
                CarEntry.COLUMN_CAR_DATE,
                CarEntry.COLUMN_CAR_MOVEFROM,
                CarEntry.COLUMN_CAR_MOVETO};

        Cursor  cursor = getContentResolver().query(Uri.parse("content://gregorykraft.com.scanvin/cars"),projection,null,null,null);

        if
        (cursor == null || cursor.getCount() < 1) {
            Toast.makeText(this, getString(R.string.error_uri),
                    Toast.LENGTH_SHORT).show();
            return "";
        }
        int i = 0;
        if (cursor.moveToFirst()) {
            while (!cursor.isAfterLast()) {
                i++;
                String s =String.valueOf(i);
                String vinStr = cursor.getString(cursor.getColumnIndex(CarEntry.COLUMN_CAR_VIN));
                String mvFrom = cursor.getString(cursor.getColumnIndex(CarEntry.COLUMN_CAR_MOVEFROM));
                String mvTo = cursor.getString(cursor.getColumnIndex(CarEntry.COLUMN_CAR_MOVETO));
                String dateStr = cursor.getString(cursor.getColumnIndex(CarEntry.COLUMN_CAR_DATE));
                tempStr = tempStr+s+") "+vinStr + "-" + mvFrom + "->" + mvTo + "-" + dateStr + "\n";
                cursor.moveToNext();
            }
            cursor.close();
        }
        return tempStr;

    }
© www.soinside.com 2019 - 2024. All rights reserved.