こんにちはstackoverflowers
、日付で満たされた行を持つデータベースがあるとしましょう。
問題 1:
このように :
2013-06-01
だから私はこの日付を文字列に変換したい
入力:
火曜日 Mar 01 00:00:00 EET 2013
例として..では、どのように日付の出力を次のように変えることができますか:
2013年3月?? これが私のコードです:
date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
.parse(mCursor.getString(mCursor
.getColumnIndex(KEY_AVAILABILITYDATE)));
list.add(date);
問題2(最初に問題1を解決する必要があると思います):
もちろん、日付を追加したリストを並べ替えたいです。
だから私はこのコードを実行します:
Collections.sort(list);
しかし、率直に言って、正しくソートされません! それはまちまちです - 日付はすべて間違っています。
読んでくれてありがとう、簡単だといいのですが!
すべてのコード:
public ArrayList<Date> GetValues() {
ArrayList<Date> list = new ArrayList<Date>();
Date date;
if (mCursor.moveToFirst()) {
while (mCursor.isAfterLast() == false) {
try {
date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
.parse(mCursor.getString(mCursor
.getColumnIndex(KEY_AVAILABILITYDATE)));
list.add(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCursor.moveToNext();
}
}
Collections.sort(list);
return list;
}
いくつかの希望を失った後、すべてのコードを表示することにしました。
コード:
Database DbHelper = new Database(
this.getSherlockActivity()).open();
ArrayList<Date> headers = DbHelper.GetValues();
HashSet<Date> hs = new HashSet<Date>();
hs.addAll(headers);
headers.clear();
headers.addAll(hs);
Collections.sort(header,dateComparator);
Collections.reverse(headers);
私はサードパーティのライブラリを使用しています: StickyGridHeadersGridViewなので、ここに私のアダプターがあります:
@Override
public int getCountForHeader(int header) {
// TODO Auto-generated method stub
return 1;
}
@Override
public int getNumHeaders() {
// TODO Auto-generated method stub
return headers.size();
}
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.header, parent, false);
TextView tvheader = (TextView) convertView
.findViewById(R.id.tvheader);
String headertitle = headers.get(position).toString();
if (headertitle.contains("01 00:00:00 EET")) {
headertitle = headertitle.replace("01 00:00:00 EET", "");
}
if (headertitle.contains("01 00:00:00 EEST")) {
headertitle = headertitle.replace("01 00:00:00 EEST", "");
}
if (headertitle.contains("02 00:00:00 EET")) {
headertitle = headertitle.replace("02 00:00:00 EET", "");
}
if (headertitle.contains("02 00:00:00 EEST")) {
headertitle = headertitle.replace("02 00:00:00 EEST", "");
}
if (headertitle.contains("15 00:00:00 EET")) {
headertitle = headertitle.replace("15 00:00:00 EET", "");
}
// days
if (headertitle.contains("Mon")) {
headertitle = headertitle.replace("Mon", "");
}
if (headertitle.contains("Tue")) {
headertitle = headertitle.replace("Tue", "");
}
if (headertitle.contains("Wed")) {
headertitle = headertitle.replace("Wed", "");
}
if (headertitle.contains("Thu")) {
headertitle = headertitle.replace("Thu", "");
}
if (headertitle.contains("Fri")) {
headertitle = headertitle.replace("Fri", "");
}
if (headertitle.contains("Sat")) {
headertitle = headertitle.replace("Sat", "");
}
if (headertitle.contains("Sun")) {
headertitle = headertitle.replace("Sun", "");
}
// months
if (headertitle.contains("Jan")) {
headertitle = headertitle.replace("Jan", "January");
}
if (headertitle.contains("Feb")) {
headertitle = headertitle.replace("Feb", "February");
}
if (headertitle.contains("Mar")) {
headertitle = headertitle.replace("Mar", "March");
}
if (headertitle.contains("Apr")) {
headertitle = headertitle.replace("Apr", "April");
}
if (headertitle.contains("Jun")) {
headertitle = headertitle.replace("Jun", "June");
}
if (headertitle.contains("Jul")) {
headertitle = headertitle.replace("Jul", "July");
}
if (headertitle.contains("Aug")) {
headertitle = headertitle.replace("Aug", "August");
}
if (headertitle.contains("Sep")) {
headertitle = headertitle.replace("Sep", "September");
}
if (headertitle.contains("Oct")) {
headertitle = headertitle.replace("Oct", "October");
}
if (headertitle.contains("Nov")) {
headertitle = headertitle.replace("Nov", "November");
}
if (headertitle.contains("Dec")) {
headertitle = headertitle.replace("Dec", "December");
}
tvheader.setText(headertitle);
}
しかし今、結果はすべて混乱して失われています!グリッドビューは大きく、私は見るだけです:
2013年9月 2013年6月 2013年7月
各行で。私に何ができる ?ありがとう