1

この件について誰か助けてくれませんか?チェックボックス付きのリストビューがあり、ユーザーがチェックボックスをオンにするたびに、選択したすべてのユーザー ID が配列リストに挿入されました。次に、[エクスポート] ボタンをクリックすると、データベース内のすべての列 [マーク] が [送信しない] から [送信済み] に更新されます。私は、このコードによってデータベースが更新されることを知っています:

public void updateEmailmark(String consumerId) 
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(Constants.CONSUMER_EMAILMARK, "Sent");
    db.update(Constants.DATABASE_TABLE_CONSUMER, contentValues, Constants.CONSUMER_ID + "=?",new String[]{consumerId});
    db.close();
}

しかし、私の問題は、ユーザーがエクスポートする多くの UserID を選択したときにその列を更新する方法がわからないことです。forループを使用する必要があることだけは知っていましたが、方法がわかりません。私を助けてくれる人に感謝します。これが私の他のコードです。

btn_Export.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v){
            arraylistSelectedConsumerIds = simpleAdapterConsumerData.getArrayListConsumerId();
            arraylistSelectedConsumer = simpleAdapterConsumerData.getArrayListConsumer();

            if (!arraylistSelectedConsumerIds.toString().equals("[]") && !arraylistSelectedConsumer.toString().equals("[]"))
            {
                boolean hasSDCard = false;
                boolean sdCardIsWriteable = true;
                String sdCardState = Environment.getExternalStorageState();
                if (Environment.MEDIA_MOUNTED.equals(sdCardState))
                    hasSDCard = true;
                else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(sdCardState))
                    sdCardIsWriteable = true;

                if (hasSDCard == true && sdCardIsWriteable == true){
                    new AsyncCreateBackup().execute();

                    String date = String.valueOf(calendar.get(Calendar.MONTH)+1)+"-"+String.valueOf(calendar.get(Calendar.DATE))+"-"+String.valueOf(calendar.get(Calendar.YEAR));

                    int fileCounter = 1;
                    File sdcard = Environment.getExternalStorageDirectory();
                    File dir    =   new File (sdcard.getAbsolutePath() + "/CompanyCares/export/");
                    if (dir.exists()){
                        File[]dirs = dir.listFiles();

                         try{
                             for(File fileFolder: dirs){
                                if(fileFolder.isDirectory() && fileFolder.getName().contains("export_"+date)){
                                    fileCounter++;
                                }
                             }
                         } catch (Exception e){
                             e.printStackTrace();
                         }
                    }

                    consumerData = new StringBuilder();
                    File personFile;
                    time = String.valueOf(calendar.get(Calendar.HOUR_OF_DAY))+String.valueOf(calendar.get(Calendar.MINUTE))+String.valueOf(calendar.get(Calendar.SECOND));
                    personFile = createCSV("Person_Table_"+date+"_"+time, Constants.COLUMN_STRING_PERSON_TABLE, getConsumersDetails(arraylistSelectedConsumerIds), fileCounter, false);

                    createEmailWithAttachments(personFile);

                    arrayListExportedConsumerId.addAll(arraylistSelectedConsumerIds);
                    arrayListExportedConsumer.addAll(arraylistSelectedConsumer);

                    exportedConsumerId = new HashSet<String>();
                    exportedConsumer = new HashSet<String>();
                    exportedConsumerId.addAll(arrayListExportedConsumerId);
                    exportedConsumer.addAll(arrayListExportedConsumer);

                    sharedPreferencesEditor.putStringSet(Constants.SHARED_PREFERENCES_EXPORTED_CONSUMER_ID, exportedConsumerId);
                    sharedPreferencesEditor.putStringSet(Constants.SHARED_PREFERENCES_EXPORTED_CONSUMER, exportedConsumer);
                    sharedPreferencesEditor.commit();
                }else{
                    Toast.makeText(AdminActivity.this, getString(R.string.error_sdcard), Toast.LENGTH_SHORT).show();
                }
            }else{
                Toast.makeText(AdminActivity.this, getString(R.string.error_select), Toast.LENGTH_LONG).show();
            }
        }
    });
4

0 に答える 0