このLong値はDATETIMEとしてデータベースに格納されていますが、必要な日付、日付、および日付に基づいてこれらのレコードをフィルタする方法に関する問題があります。時間はLong値として保存されました。私は今、私は文字列に日付にgetDueDateTime(ロング)からの値を変換しようとすると、それは正確に表示するように動作します。このコードによって、レコードLong(コンストラクタから)をStringに変換した後のフィルタArrayList
public List<DatabaseSource> getListSched() {
List<DatabaseSource> taskList = new ArrayList<DatabaseSource>();
// Select All Query
String selectQuery = "SELECT * FROM schedTBL" ;
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
DatabaseSource tasks = new DatabaseSource();
tasks.setId(cursor.getInt(0));
tasks.setSubject(cursor.getString(1));
tasks.setDescription(cursor.getString(2));
tasks.setDueDateTime(cursor.getLong(3));
// Adding contact to list
taskList.add(tasks);
} while (cursor.moveToNext());
}
db.close();
// return contact list
return taskList;
}
マイコンストラクタ
public DatabaseSource(int id, String subject, String description, Long dueDateTime) {
this.id = id;
this.subject = subject;
this.description = description;
this.dueDateTime = dueDateTime;
}
を問い合わせます日付と時刻。それらを変換した後、私は日付の文字列(sharedprefから来る)に基づいてレコードをフィルタリングしたいと思います。私のレイアウトの流れは、カレンダーからその日を選択した後、次のアクティビティは、日付は同じで時間の異なるフィルタリングされたレコードを表示します。私はあなたが日付と時刻が正しく変換されますが、それはすべてのレコードを表示し見ることができるように、私はそれを比較した後、同じ日付のレコードを表示したい
@Override
public View getView(int position, View convertView, ViewGroup parent) {
sharedPreference = new SharedPreferenceUID();
text = sharedPreference.getValue2(mContext);
String dateString= DateFormat.format("yyyy-MM-dd hh:mm a", new Date(mSchedLists.get(position).getDueDateTime())).toString();
View v = View.inflate(mContext, R.layout.item_listview, null);
TextView subj = (TextView)v.findViewById(R.id.txtSubject);
TextView duedate = (TextView) v.findViewById(R.id.txtDueDateTime);
subj.setText(mSchedLists.get(position).getSubject());
duedate.setText(dateString);
v.setTag(mSchedLists.get(position).getId());
return v;
}
リストビューでレコードを表示する方法 はここです時間に関係なくsharedprefに日付を保存しました。カレンダーから日付をクリックし、その日付がsharedprefに保存され、次のアクティビティーが、前のアクティビティーからクリックされた日付に基づいてレコードをすでにフィルターに掛けたとします。
文字列ではなく、フィルタリングにLong値を使用する必要があります。 – njzk2
あなたはそれを得ることができません、私は日付と時刻の値をデータベースにLongとして保存したので、sharedprefに保存されている日付のみに基づいてクエリを実行すると思います。それは長いもの(日付と時刻の数値変換)です。それをフィルタリングして別のarraylistに送ることができれば、どうすればいいですか? –
SharedPreferenceに日付の値を長く格納できない理由があります。あなたがそれを行うことができれば、データをフィルタリングする方が簡単かもしれません。 –