この件について誰か助けてくれませんか?チェックボックス付きのリストビューがあり、ユーザーがチェックボックスをオンにするたびに、選択したすべてのユーザー 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();
}
}
});