public class Main extends Activity implements OnClickListener{
private Cursor mCursor = null;
private static final String[] COLS = new String[]
{ CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART};
}
現在我們需要重寫on create方法。請特別注意我們如何填充數據庫遊標。這是我們需要我們以前定義的COLS常量的地方。您還會注意到,在數據庫遊標初始化並設置了click處理程序回調後,我們繼續並手動調用on click處理程序。這個快捷方式使我們能夠在不必重複代碼的情況下填寫我們的UI。
Main.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mCursor = getContentResolver().query(
CalendarContract.Events.CONTENT_URI, COLS, null, null, null);
mCursor.moveToFirst();
Button b = (Button)findViewById(R.id.next);
b.setOnClickListener(this);
b = (Button)findViewById(R.id.previous);
b.setOnClickListener(this);
onClick(findViewById(R.id.previous));
}
在我們的回調中,我們將操縱光標到數據庫中正確的條目並更新UI。
@Override
public void onClick(View v) {
TextView tv = (TextView)findViewById(R.id.data);
String title = "N/A";
Long start = 0L;
switch(v.getId()) {
case R.id.next:
if(!mCursor.isLast()) mCursor.moveToNext();
break;
case R.id.previous:
if(!mCursor.isFirst()) mCursor.moveToPrevious();
break;
}
Format df = DateFormat.getDateFormat(this);
Format tf = DateFormat.getTimeFormat(this);
try {
title = mCursor.getString(0);
start = mCursor.getLong(1);
} catch (Exception e) {
//ignore
}
tv.setText(title+" on "+df.format(start)+" at "+tf.format(start));
}
你也可以參考這個鏈接:http://www.vogella.com/articles/AndroidCalendar/article.html –
這將工作與android 2.3 ?? – user1160329
是的,它會工作 –