1

我已经关注了谷歌文档和许多其他网站,并为日历进行了编程,但它不适用于 android api v14 以下的设备......谁能提供日历 api 的代码,它可以支持 api v10 以上的所有设备......

MainActivity.java

package com.test.weekly;
import java.text.Format;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.text.format.DateFormat;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MainActivity extends Activity implements OnClickListener{

private Cursor mCursor = null;
private static final String[] COLS = new String[] { CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_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));
}
@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));
}

}

4

1 回答 1

1

Android 具有旧设备支持的未记录日历 API。

这是一个小类,提供对 android Calendar 的有限支持。您可以查看资源以了解如何使用未记录的 API 使用 Android 日历。

Eclipse 的完整项目在这里

如果您可以阅读俄语(或使用 translate.google.com),则可以阅读此主题

于 2013-06-17T08:25:40.297 回答