mardi 14 juillet 2015

using datepickers date to populate spinner data shows same results even if the date is changed

I have written a program to insert some fields values into sqlite database which is working perfectly , in my activity i have an edittext fromdate which when clicked a datepicker shows up , suppose i am inserting some values into my sqlite database today , and when i select todays date from datepicker , the values gets populated correctly into my spinner , but when i select tomorrows date or yesterdays date the spinner values should go but is not happening in my case , it is showing the same values for future dates and past dates.

Create Table :

private static final String CREATE_TABLE_FINALDATA = "Create table 
        "+TABLE_NAME_FINALDATA+" (" +UID
        +" INTEGER PRIMARY KEY, "+REFERENCE_NO+" VARCHAR(200),   
        "+ACCOUNT_NAME+" VARCHAR(200), "+ACCOUNT_TYPE+" VARCHAR(100) 
        ,"+VEHICLE_NO+" VARCHAR(100), "+DRIVER_CODE+" VARCHAR(50), 
        "+DRIVER_NAME+" VARCHAR(200), "+DIESEL_TYPE+" VARCHAR(50), 
        "+DIESEL_RATE+" DOUBLE, "+DIESEL_QUANTITY+" DOUBLE, "+AMOUNT
        +" DOUBLE, "+EFFECTIVE_DATE+" VARCHAR(255), "+NO_OF_COPIES
        +" VARCHAR(10), "+TIME+" VARCHAR(255), "+TRANSACTION_ID+"  
        VARCHAR(500), "+REMARK+" VARCHAR(500), "+SYNC+" VARCHAR(20),
        "+CLIENT_CODE+" VARCHAR(255))";
private static final String DROP_TABLE_FINALDATA = "Drop table If Exists 
      "+TABLE_NAME_FINALDATA;

This is the query for getting the values of accountname(spinner data) based on date.

public Cursor getAccName(String fromdate,String todate){
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("Select 
"+DbListHelper.ACCOUNT_NAME+","+DbListHelper.UID+
" from "+DbListHelper.TABLE_NAME_FINALDATA+" where 
"+DbListHelper.EFFECTIVE_DATE
+" = '" + fromdate + "'", null);
return cursor;
}

Activity code :

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_records);
spinnerAccountName = (Spinner) findViewById(R.id.spinnerAccountName);
imgBack = (ImageView) findViewById(R.id.imgBack);
etFromDate = (AutoCompleteTextView) findViewById(R.id.editFromDate);
etTodate = (AutoCompleteTextView) findViewById(R.id.editToDate);
txtTotalCount = (TextView) findViewById(R.id.NoOfSlips);
txtdieselQty = (TextView) findViewById(R.id.DieselQuantity);
txtdieselAmnt = (TextView) findViewById(R.id.Amount);
cal = Calendar.getInstance();
day = cal.get(Calendar.DAY_OF_MONTH);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);

listHelper = new SqliteVehicleDetails(getBaseContext());
listHelper.open(getBaseContext());

etFromDate.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        showDialog(DATE_PICKER_ID);
    }
});

etFromDate.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int  
        count) {


        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {


        }

        @Override
        public void afterTextChanged(Editable s) {

            cursor = listHelper.getFinalData();
            if(cursor.moveToFirst()){
                fromDate = cursor.getString(cursor.getColumnIndex(
                DbListHelper.EFFECTIVE_DATE));
                cursor = listHelper.getAccName(fromDate);
                int[] to5 = new int[] { android.R.id.text1 };
                String[] from5 = new String[] { DbListHelper.ACCOUNT_NAME };
                adapter5 = new SimpleCursorAdapter(
                getBaseContext(),       
                android.R.layout.simple_list_item_1, cursor,
                        from5, to5); 

                adapter5.setDropDownViewResource(
                android.R.layout.simple_spinner_dropdown_item);
                spinnerAccountName.setAdapter(adapter5);
            }
        }
    });

@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_PICKER_ID:
        return new DatePickerDialog(this, datePickerListener, year, month, 
        day);

    case DATE_PICKER_ID_1:
        return new DatePickerDialog(this, datePickerListener1, year, month,  
        day);
    }
    return null;

}

private DatePickerDialog.OnDateSetListener datePickerListener = new 
    DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int selectedYear,
            int selectedMonth, int selectedDay) {
        etFromDate.setText(selectedDay + " / " + (selectedMonth + 1)
                + " / " + selectedYear);
    }
};

private DatePickerDialog.OnDateSetListener datePickerListener1 = new 
    DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int selectedYear,
            int selectedMonth, int selectedDay) {
        etTodate.setText(selectedDay + " / " + (selectedMonth + 1) + " / "
                + selectedYear);
    }
};

Can anybody tell me how to achieve the above? Thank You

Aucun commentaire:

Enregistrer un commentaire