J'ai écrit un programme pour insérer des données qui incluent également une colonne appelée date, donc quand j'insère quelque chose, la date sera également insérée en même temps.Comment peupler les données spinner en fonction des dates de et à partir de la base de données sqlite?
L'insertion fonctionne parfaitement, maintenant dans une activité différente J'ai deux edittexts fromdate et todate qui, lorsqu'on clique sur datepicker séparé ouvrira et la date sélectionnée sera définie sur le edittext respectif, maintenant ce que je veux faire est quand j'ai J'ai terminé la sélection de la date et à ce jour, je veux que mon spinner soit rempli en fonction de la date à laquelle j'ai inséré mes données.
J'ai essayé quelque chose qui ne fonctionne pas bien.
Voici le tableau que j'ai créé
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;
Ceci est la requête pour obtenir les valeurs de accountname en fonction des dates
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+"between"+DbListHelper.EFFECTIVE_DATE
+ " = '" + fromdate + "' and " + DbListHelper.EFFECTIVE_DATE + " = '" + todate
+ "'", null);
return cursor;
}
Ceci est le code d'activité
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
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);
}
});
etTodate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_PICKER_ID_1);
}
});
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) {
if (cursor.moveToFirst()) {
String fromDate = cursor.getString(cursor.getColumnIndex(DbListHelper.EFFECTIVE_DATE));
String toDate = cursor.getString(cursor.getColumnIndex(DbListHelper.EFFECTIVE_DATE));
cursor = listHelper.getAccName(fromDate, toDate);
int[] to5 = new int[]{android.R.id.text1};
String[] from5 = new String[]{DbListHelper.ACCOUNT_NAME};
final SimpleCursorAdapter 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);
}
}
});
etTodate.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()) {
String fromDate = cursor.getString(cursor.getColumnIndex(DbListHelper.EFFECTIVE_DATE));
String toDate = cursor.getString(cursor.getColumnIndex(DbListHelper.EFFECTIVE_DATE));
cursor = listHelper.getAccName(fromDate, toDate);
int[] to5 = new int[]{android.R.id.text1};
String[] from5 = new String[]{DbListHelper.ACCOUNT_NAME};
final SimpleCursorAdapter 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);
}
};
}