بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ریختن مقدار چند spinner به یک database

مدیریت گفتگو
m-developer 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام          (مشکل حل شد) با تشکر از احسان عزیز

من database  ای که استاد اموزش داده رو در برنامه ام دارم 

و 5 تا  spinner  دارم  که هر کدوم مقادیر سال ، ماه ، روز، ساعت و دقیقه رو در بر میگیرند و مقدار های هر کدومشون توی یه  int یا string ریخته میشه

حالا می خوام این مقادیر رو توی جدولی که در database  ساختم بریزم اما هنوز موفق نشدم (روش های زیادیو امتحان کردم جواب نگرفتم)

شما چه راحلی پیشنهاد میدین؟

ممنون

این  database  امه:

 database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null);
        database.execSQL("CREATE  TABLE  IF NOT EXISTS storage (" +
                "storage_id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , " +
                "storage_year INTEGER, " +
                "storage_month INTEGER, " +
                "storage_day INTEGER" +
                "storage_hour INTEGER" +
                "storage_min INTEGER" +
                "storage_ampm INTEGER" +
                ")");

اینم اطلاعاتی که می خوام وارد کنم:

    private int                  AM_PM;
    private int                  HOUR;
    private int                  MIN;
    private int                  DAY;
    private int                  MONTH;
    private int                  YEAR;

نظرات

احسان منصوری 11 سال پیش
ظاهرا راحتترین راه رو امتحان نکردین. شما بیا توی رویداد setOnItemClickListener اسپینر، مقدار آیتم کلیک شده رو بریز داخل متغیر. بعد اون متغیر رو Insert کن داخل بانک.
m-developer 11 سال پیش
اون کارو کردم متفیر هام پر از مقدار انتخابی توی اسپینر هستن ایجا فقط خواستم متغیر هام رو معرفی کنم که چی هستن مشکل من سر insert کردن توی database هست

پاسخ‌ها 2

m-developer 11 سال پیش

چطور متغیر رو که داخلش مقدار هست رو وارد دیتابیس کنم؟

 این کد رو نوشتم ولی  ولی وقتی وارد اتکتیویتی می شم کرش می کنه

 G.database.execSQL("INSERT INTO storage (storage_year,storage_month,storage_day,storage_hour,storage_min,storage_ampm) 
VALUES (" + YEAR + "," + MONTH + "," + DAY + "," + HOUR + "," + MIN + "," + AM_PM + ")");

 

 

 

نظرات

احسان منصوری 11 سال پیش
نمیدونم کدم رو کجا نوشتم. باید متغیر رو به این صورت بنویسی: '"+YEAR+"' یعنی دوتا تک کوتیشن، بعد داخلش دوتا دبل کوتیشن، بعد داخلش دوتا بعلاوه، بعد متغیر
m-developer 11 سال پیش

این کل کد من هرجوری می نویسم کرش می کنه حتی با روش احسان

کل کد مشکلی نداره فقط برای کد وارد کردن داده ها به دیتا بیس که در خط اخره کرش می کنه

 
public class ActivityGivingInfo extends Activity { Spinner spin_month; String month_value; String[] month = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; //array of strings used to populate the spinner Spinner spin_day; String day_value; String[] day31 = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }; //array of strings used to populate the spinner String[] day30 = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" }; //array of strings used to populate the spinner String[] day = { "" }; Spinner spin_year; String year_value; String[] year = { "1393", "1394", "1395", "1396", "1397", "1398" }; //array of strings used to populate the spinner Spinner spin_hour; String hour_value; String[] hour = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }; Spinner spin_min; String min_value; String[] min = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59" }; Spinner spin_ampm; String ampm_value; String[] ampm = { "AM", "PM" }; private ArrayAdapter<String> spin_adapter_day; private int AM_PM; private int HOUR; private int MIN; private int DAY; private int MONTH; private int YEAR; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.giving_info); //Spinner month*************************************************************************
spin_month = (Spinner) findViewById(R.id.spinner_month);//fetching view's id spin_month.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { month_value = month[position];//saving the value selected if (position < 6) { spin_adapter_day = new ArrayAdapter<String>(arg0.getContext(), android.R.layout.simple_spinner_item, day31); day = day31; } else { spin_adapter_day = new ArrayAdapter<String>(arg0.getContext(), android.R.layout.simple_spinner_item, day30); day = day30; } spin_day.setAdapter(spin_adapter_day); Toast.makeText(ActivityGivingInfo.this, month_value, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> arg0) { Toast.makeText(ActivityGivingInfo.this, "choose one pls", Toast.LENGTH_SHORT).show(); } }); ArrayAdapter<String> spin_adapter_month = new ArrayAdapter<String>(ActivityGivingInfo.this, android.R.layout.simple_spinner_item, month); spin_month.setAdapter(spin_adapter_month); //Spinner year******************************************************************************************* spin_year = (Spinner) findViewById(R.id.Spinner_year);//fetching view's id spin_year.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { year_value = year[position];//saving the value selected } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); ArrayAdapter<String> spin_adapter_year = new ArrayAdapter<String>(ActivityGivingInfo.this, android.R.layout.simple_spinner_item, year); spin_year.setAdapter(spin_adapter_year); //Spinner day************************************************************************************* spin_day = (Spinner) findViewById(R.id.Spinner_day);//fetching view's id spin_day.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { day_value = day[position];//saving the value selected } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); spin_hour = (Spinner) findViewById(R.id.Spinner_hour);//fetching view's id spin_hour.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { hour_value = hour[position];//saving the value selected } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); ArrayAdapter<String> spin_adapter_hour = new ArrayAdapter<String>(ActivityGivingInfo.this, android.R.layout.simple_spinner_item, hour); spin_hour.setAdapter(spin_adapter_hour); spin_min = (Spinner) findViewById(R.id.Spinner_min);//fetching view's id spin_min.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { hour_value = min[position];//saving the value selected } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); ArrayAdapter<String> spin_adapter_min = new ArrayAdapter<String>(ActivityGivingInfo.this, android.R.layout.simple_spinner_item, min); spin_min.setAdapter(spin_adapter_min); spin_ampm = (Spinner) findViewById(R.id.Spinner_ampm);//fetching view's id spin_ampm.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { ampm_value = ampm[position];//saving the value selected if (ampm_value.equals("AM")) { AM_PM = 0; } else { AM_PM = 1; } } @Override public void onNothingSelected(AdapterView<?> arg0) {} }); ArrayAdapter<String> spin_adapter_ampm = new ArrayAdapter<String>(ActivityGivingInfo.this, android.R.layout.simple_spinner_item, ampm); spin_ampm.setAdapter(spin_adapter_ampm); Button btngiveinfo = (Button) findViewById(R.id.btngive); btngiveinfo.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (year_value != null) { YEAR = Integer.parseInt(year_value); } if (month_value != null) { MONTH = Integer.parseInt(month_value); } if (day_value != null) { DAY = Integer.parseInt(day_value); } if (hour_value != null) { HOUR = Integer.parseInt(hour_value); } if (min_value != null) { MIN = Integer.parseInt(min_value); } Toast.makeText(ActivityGivingInfo.this, "shart kamele", Toast.LENGTH_SHORT).show(); G.database.execSQL("INSERT INTO storage (storage_year,storage_month,storage_day,storage_hour,storage_min,storage_ampm) VALUES ('" + YEAR + "','" + MONTH + "','" + DAY + "','" + HOUR + "','" + MIN + "','" + AM_PM + "')"); } }); } }

نظرات

احسان منصوری 11 سال پیش
شما نمیخواد اینهمه اطلاعات رو وارد کنی. با یه editText تست کن ببین مشکل از کوئریته یا چیز دیگه
m-developer 11 سال پیش
دقیقا می دونم مشکل از این خطه: G.database.execSQL....... این خط رو کامنت کنم همه چی درسته وقتی این خط می خواد اجرا شه کرش می کنه
m-developer 11 سال پیش
دقیقا می دونم مشکل از این خطه: G.database.execSQL....... این خط رو کامنت کنم همه چی درسته وقتی این خط می خواد اجرا شه کرش می کنه
m-developer 11 سال پیش
از genymotion استفاده می کنم logcat چیزی نشون نمیده!
احسان منصوری 11 سال پیش
خب از emulator خود ide استفاده کن. ببین میگم اکلیپس افتضاحه واسه همینه. یکی از خوبیای اندروید استودیو عدم مشکل با جنی موشنه
m-developer 11 سال پیش
بدبختی همینجاست دیگه نمی زاره امولاتور بسازم!!! میگه Target location is not inside the SDK. در حالی که SDK ام درسته! خیلی کلافه شدم از اکلیپس!

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .