CalendarView: haga clic en Android

Estoy intentando comenzar una nueva actividad cuando haces clic en una fecha en CalendarView pero mi acontecimiento no parece encender. He fijado clickable a verdadero y especificado un onclick (ambos en xml)

Este es el xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <CalendarView android:id="@+id/calendarView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:clickable="true" android:onClick="CalendarClick" /> </RelativeLayout> 

Este es mi código para la actividad del calendario:

  public class CalendarActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calendar); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_calendar, menu); return true; } public void CalendarClick(View view) { Intent myIntent = new Intent(CalendarActivity.this, MainActivity.class); CalendarActivity.this.startActivity(myIntent); } } 

Esto funciona bien

  public class MyActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newact); CalendarView calendarView=(CalendarView) findViewById(R.id.calendarView1); calendarView.setOnDateChangeListener(new OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { Toast.makeText(getApplicationContext(), ""+dayOfMonth, 0).show();// TODO Auto-generated method stub } }); } 

Y esto es xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <CalendarView android:id="@+id/calendarView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> </RelativeLayout> 

Utilícelo para saber a qué fecha se ha hecho clic

 CalendarView calendarView=(CalendarView) findViewById(R.id.calendarView1); calendarView.setOnDateChangeListener(new OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { Toast.makeText(getApplicationContext(), ""+dayOfMonth, 0).show();// TODO Auto-generated method stub } }); 

OnGlobalLayoutListener hará el truco si desea hacer clic en la fecha ya seleccionada.

 calendarView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { //your code here } }); 
  • GetWidth devuelve 0 en Fragment, getPaddingLeft devuelve no-cero
  • Indicadores de grupo en android.widget.ExpandableListView
  • ¿Cómo obtengo el tokenizer MultiAutoCompleteTextView similar a la aplicación de Facebook?
  • Cálculo de la altura de cada fila de un ListView
  • ¿Cómo cambiar el icono de la aplicación Android creada en Google App Inventor?
  • Posición de PagerTabStrip dentro de ViewPager
  • Android RatingBar icono vector no se muestra
  • ¿Cómo usar Anko DSL dentro de un Fragmento?
  • 5.1.1 notificación TextView, la forma correcta de tratar con texto blanco?
  • Diseño complejo de Android lineal y relativo
  • Añadir relleno en vista de forma programática
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.