Android 如何基于sqlite数据库中的起始日期和截止日期填充微调器数据?

Android 如何基于sqlite数据库中的起始日期和截止日期填充微调器数据?,android,sqlite,date,Android,Sqlite,Date,我已经编写了一个程序来插入一些数据,其中还包括一个名为date的列,因此当我插入一些数据时,日期也将同时插入 插入工作正常,现在在另一个活动中,我有两个edittext fromdate和todate,当单击单独的日期选择器时,将打开这两个edittext,并在相应的edittext上设置所选日期,现在我要做的是,当我完成从日期和到日期的选择后,我希望根据插入数据的日期填充微调器 我试过一些不起作用的东西 这是我创建的表 private static final String CREATE_TA

我已经编写了一个程序来插入一些数据,其中还包括一个名为date的列,因此当我插入一些数据时,日期也将同时插入

插入工作正常,现在在另一个活动中,我有两个edittext fromdate和todate,当单击单独的日期选择器时,将打开这两个edittext,并在相应的edittext上设置所选日期,现在我要做的是,当我完成从日期和到日期的选择后,我希望根据插入数据的日期填充微调器

我试过一些不起作用的东西

这是我创建的表

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;
这是基于日期获取accountname值的查询

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;
}
这是活动代码

@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);
        }
    };
}

我认为你应该研究一下日期选择器,因为它只是为了这个目的。微调器用于更多的有限选择。你可以在这里使用它,但是你需要做很多改革代码来达到同样的效果