Android布局充气器不适用于Android日历 String testDate=“2014年11月5日”; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceS

Android布局充气器不适用于Android日历 String testDate=“2014年11月5日”; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceS,android,Android,Android布局充气器不适用于Android日历 String testDate=“2014年11月5日”; @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.calendar); setDefault(Locale.US); rLayout=(LinearLayout)findViewById(R.id.text); month=(gre

Android布局充气器不适用于Android日历
String testDate=“2014年11月5日”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar);
setDefault(Locale.US);
rLayout=(LinearLayout)findViewById(R.id.text);
month=(gregorianalendar)Calendar.getInstance();
itemmonth=(GregorianCalendar)month.clone();
items=newarraylist();
适配器=新日历适配器(本月);
GridView GridView=(GridView)findViewById(R.id.GridView);
setAdapter(适配器);
handler=新的handler();
handler.post(日历更新程序);
TextView title=(TextView)findViewById(R.id.title);
title.setText(android.text.format.DateFormat.format(“MMMM-yyyy”,month));
RelativeLayout previous=(RelativeLayout)findViewById(R.id.previous);
previous.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
setPreviousMonth();
刷新日历();
}
});
RelativeLayout next=(RelativeLayout)findViewById(R.id.next);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
setNextMonth();
刷新日历();
}
});
SimpleDataFormat dateFormat=新的SimpleDataFormat(“dd/mm/yyyy”,
java.util.Locale.getDefault());
尝试
{
d=dateFormat.format(dateFormat.parse(testDate));
d1=dateFormat.format(dateFormat.parse(testDate));
日志d(“日期”,d);
日志d(“日期1”,d1);
} 
捕获(解析异常)
{
e、 printStackTrace();
}
如果(d等于(d1))
{
视图v=null;
如果(v==null)
{
LayoutInflater vi=(LayoutInflater)CalendarView.this
.getSystemService(上下文布局\充气机\服务);
v=vi.充气(R.布局.日历\布局,gridview,false);
}
TextView titleView=(TextView)v.findViewById(R.id.titleView);
titleView.setText(“abc”);
}
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
TextView cdate=(TextView)v.findViewById(R.id.date);
if(cdate instanceof TextView&!cdate.getText()等于(“”)
{
TextView title=(TextView)findViewById(R.id.title);
title.setText(android.text.format.DateFormat.format(“MMMM-yyyy”,month));
testMonth=title.getText().toString();
String day=cdate.getText().toString();
Toast.makeText(getApplicationContext(),day+“”+testMonth,Toast.LENGTH\u LONG.show();
}
//删除以前的视图(如果已添加)
如果(rLayout.getChildCount()>0){
rLayout.removeallview();
}
desc=新的ArrayList();
日期=新的ArrayList();
((CalendarAdapter)parent.getAdapter()).setSelected(v);
String selectedGridDate=CalendarAdapter.dayString
.获得(职位);
String[]separatedTime=selectedgridate.split(“-”);
String gridvalueString=separatedTime[2]。replaceFirst(“^0*”,
“”);//从2012年12月2日开始计算日期的最后一部分。
int gridvalue=Integer.parseInt(gridvalueString);
//单击offdays导航到下个月或上个月。
如果((网格值>10)和&(位置<8)){
setPreviousMonth();
刷新日历();
}否则如果((网格值<7)和(&(位置>28)){
setNextMonth();
刷新日历();
}
((CalendarAdapter)parent.getAdapter()).setSelected(v);
对于(int i=0;i0){
对于(int i=0;i  String testDate = "05/11/2014";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calendar);
    Locale.setDefault(Locale.US);

    rLayout = (LinearLayout) findViewById(R.id.text);
    month = (GregorianCalendar) Calendar.getInstance();
    itemmonth = (GregorianCalendar) month.clone();

    items = new ArrayList<String>();

    adapter = new CalendarAdapter(this, month);

    GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(adapter);

    handler = new Handler();
    handler.post(calendarUpdater);

    TextView title = (TextView) findViewById(R.id.title);
    title.setText(android.text.format.DateFormat.format("MMMM yyyy", month));

    RelativeLayout previous = (RelativeLayout) findViewById(R.id.previous);

    previous.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            setPreviousMonth();
            refreshCalendar();
        }
    });

    RelativeLayout next = (RelativeLayout) findViewById(R.id.next);
    next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            setNextMonth();
            refreshCalendar();

        }
    });

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy",
            java.util.Locale.getDefault());


            try 
            {
                d = dateFormat.format(dateFormat.parse(testDate));
                d1 = dateFormat.format(dateFormat.parse(testDate));
                Log.d("Date",d);
                Log.d("Date1",d1);
            } 
            catch (ParseException e) 
            {
                e.printStackTrace();
            }

        if(d.equals(d1))
        {


            View v = null;
            if(v==null)
            {
            LayoutInflater vi = (LayoutInflater)CalendarView.this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.calendar_layout, gridview,false);
            }
         TextView titleView = (TextView)v.findViewById(R.id.titleView);
         titleView.setText("abc");
        }

    gridview.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            TextView cdate = (TextView)v.findViewById(R.id.date);
            if(cdate instanceof TextView && !cdate.getText().equals("")) 
            {

                 TextView title  = (TextView) findViewById(R.id.title);
                title.setText(android.text.format.DateFormat.format("MMMM yyyy", month));

                testMonth=title.getText().toString();

                String day = cdate.getText().toString();
                Toast.makeText(getApplicationContext(),day+" "+testMonth,Toast.LENGTH_LONG).show();

            }

            // removing the previous view if added
            if (rLayout.getChildCount() > 0) {
                rLayout.removeAllViews();
            }
            desc = new ArrayList<String>();
            date = new ArrayList<String>();
            ((CalendarAdapter) parent.getAdapter()).setSelected(v);
            String selectedGridDate = CalendarAdapter.dayString
                    .get(position);
            String[] separatedTime = selectedGridDate.split("-");
            String gridvalueString = separatedTime[2].replaceFirst("^0*",
                    "");// taking last part of date. ie; 2 from 2012-12-02.
            int gridvalue = Integer.parseInt(gridvalueString);
            // navigate to next or previous month on clicking offdays.
            if ((gridvalue > 10) && (position < 8)) {
                setPreviousMonth();
                refreshCalendar();
            } else if ((gridvalue < 7) && (position > 28)) {
                setNextMonth();
                refreshCalendar();
            }
            ((CalendarAdapter) parent.getAdapter()).setSelected(v);

            for (int i = 0; i < Utility.startDates.size(); i++) {
                if (Utility.startDates.get(i).equals(selectedGridDate)) {
                    desc.add(Utility.nameOfEvent.get(i));
                }
            }

            if (desc.size() > 0) {
                for (int i = 0; i < desc.size(); i++) {
                    TextView rowTextView = new TextView(CalendarView.this);

                    // set some properties of rowTextView or something
                    rowTextView.setText("Event:" + desc.get(i));
                    rowTextView.setTextColor(Color.BLACK);

                    // add the textview to the linearlayout
                    rLayout.addView(rowTextView);

                }

            }

            desc = null;

        }

    });
}

protected void setNextMonth() {
    if (month.get(Calendar.MONTH) == month
            .getActualMaximum(Calendar.MONTH)) {
        month.set((month.get(Calendar.YEAR) + 1),
                month.getActualMinimum(Calendar.MONTH), 1);
    } else {
        month.set(Calendar.MONTH,
                month.get(Calendar.MONTH) + 1);
    }

}

protected void setPreviousMonth() {
    if (month.get(Calendar.MONTH) == month
            .getActualMinimum(Calendar.MONTH)) {
        month.set((month.get(Calendar.YEAR) - 1),
                month.getActualMaximum(Calendar.MONTH), 1);
    } else {
        month.set(Calendar.MONTH,
                month.get(Calendar.MONTH) - 1);
    }

}

protected void showToast(String string) {
    Toast.makeText(this, string, Toast.LENGTH_SHORT).show();

}

public void refreshCalendar() {
    TextView title = (TextView) findViewById(R.id.title);

    adapter.refreshDays();
    adapter.notifyDataSetChanged();
    handler.post(calendarUpdater); // generate some calendar items

    title.setText(android.text.format.DateFormat.format("MMMM yyyy", month));
}

public Runnable calendarUpdater = new Runnable() {

    @Override
    public void run() {
        items.clear();

        // Print dates of the current week
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
        String itemvalue;
        event = Utility.readCalendarEvent(CalendarView.this);
        Log.d("=====Event====", event.toString());
        Log.d("=====Date ARRAY====", Utility.startDates.toString());

        for (int i = 0; i < Utility.startDates.size(); i++) {
            itemvalue = df.format(itemmonth.getTime());
            itemmonth.add(Calendar.DATE, 1);
            items.add(Utility.startDates.get(i).toString());
        }
        adapter.setItems(items);
        adapter.notifyDataSetChanged();
    }
};