2014年1月10日 星期五

Calendar Events Listview

package com.example.test_cal;

import java.security.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.net.Uri;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.text.format.DateFormat;
import android.view.Menu;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {
private String getDate(long timeStamp){

   try{
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
       Date netDate = (new Date(timeStamp));
       return sdf.format(netDate);
   }
   catch(Exception ex){
       return "xx";
   }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



//ListView "listView1"
        ListView list = (ListView) findViewById(R.id.listView1);//綁定Layout裡面的ListView
       
        //生成動態數組,加入數據
        ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();

       
       


Context context = getApplicationContext();
ContentResolver contentResolver = context.getContentResolver();
// get current time
// needed to compare with event time from calendar
// all times are UTC so with one value we can check the date too
// see wiki for UTC time
// current time
long ntime = System.currentTimeMillis();
// read from the first calendar
Cursor cursr = contentResolver
.query(CalendarContract.Events.CONTENT_URI, new String[] {
"calendar_id", "title", "description", "dtstart",
"dtend", "eventLocation" }, null, null, CalendarContract.Instances.DTSTART + " ASC");
cursr.moveToFirst();
String[] CalNames = new String[cursr.getCount()];
int[] CalIds = new int[cursr.getCount()];
for (int i = 0; i < CalNames.length; i++) {
CalIds[i] = cursr.getInt(0);

String str_startdate = getDate(cursr.getLong(3));
String str_enddate = getDate(cursr.getLong(4));


CalNames[i] = "Event" + cursr.getInt(0) + ": \nTitle: "
+ cursr.getString(1) + "\nDescription: "
+ cursr.getString(2) + "\nStart Date: "
+  str_startdate+ "\nEnd Date : " + str_enddate
+ "\nLocation : " + cursr.getString(5);

HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("ItemImage", R.drawable.ic_launcher);//Photo ID
        map.put("ItemTitle", "Title: "+cursr.getString(1)); //Title
        map.put("ItemText", "Description: "+cursr.getString(2)+"\nStart Date: "
+  str_startdate+ "\nEnd Date : " + str_enddate); //Content

        listItem.add(map);

long StartTime = cursr.getLong(3);
long EndTime = cursr.getLong(4);
// do compare here
// if we are on the middle of something stop checking and leave the
// loop
if ((StartTime < ntime) && (ntime < EndTime)) {
System.out.println("In the middle of something");
break;
}
cursr.moveToNext();
}
cursr.close();


        //生成適配器的Item和動態數組對應的元素
        SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//數據源
            R.layout.list_item,//ListItem的XML實現
            //動態數組與ImageItem對應的子項      
            new String[] {"ItemImage","ItemTitle", "ItemText"},
            //ImageItem的XML文件裡面的一個ImageView,兩個TextView ID
            new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}
        );
     
        //Add and Show
        list.setAdapter(listItemAdapter);
       
        //One Click
        list.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//One Click To-Do
}
});
       
      //添加長按點擊
        list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
//Long Press To-Do
}
});
//End of ListView "listView1"
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}



---------------------------------------------------
EndDate小過StartDate姐係要重複

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...