ست کردن ای دی ؟!)Primary KEY

پرسیده شده
فعالیت 1486 روز پیش
دیده شده 1054 بار
1

استاد وقت بخیر 

سوالی که ذهنمو درگیر کرده اینه که ما در کلاس SQLiteHelper اومدیم و با استفاده از کد های SQL برای id پرایمری کی تعریف کردیم و روی حالت Auto گذاشتیم که خودش ای دی درست کنه!

اما در اموزش دیدیم در متد callBack شده اینترفیسمون که ای دی رو خودمون ست کردیم 

مگر اینطور نبود که خودش اتوماتیک ای دیی واسه خودش ست کنه؟

public void onNewTaskCallBack(Task task) {
    long resultId = sqLiteHelper.addTask(task);
    if(resultId>0){
      task.setId(resultId);
    }
  }

 

فایل پیوست

پوریا شفیعی
پوریا شفیعی

18 فروردین 99

3
حذف شده

سلام.

آیدی رو خودمون ست نکردیم. خروجی متد addTask که داخل کلاس دیتابیس هست،  آیدی generate شده هست.

long resultId = sqLiteHelper.addTask(task);

کد بالا، عمل اینسرتو انجام میده و داخل دیتابیس آیدی ست میشه و برمیگردونه.

اما:

task.setId(resultId);

متغیر task یک instance خالی از کلاس Task هست. ویدیو رو ببین که قبل از callback.onNewTask کدهای زیر اومده:

Task task = new Task();
task.setTitle("...");
task.setCompleted(false);

callback.onNewTask(task);

 

یعنی دوتا فیلد از task جدید مقدار دهی شده و فقط فیلد آیدی مونده که باید generate بشه توسط دیتابیس.

فایل پیوست

محسن موحد

توسط

محسن موحد

18 فروردین 99

حذف شده
من فکر میکردم کلا نباید هیچ کاری کنیم دی: سپاس
پوریا شفیعی

18 فروردین 99

حذف شده
:دی
محسن موحد

18 فروردین 99