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