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:
- Resolver conflictos entre android: gravedad y android: layout_gravity
- ¿Cómo logró Google lograr esto? Slide ActionBar en la aplicación de Android
- Edición de la anchura de TableLayout de Android
- Ventana emergente sobre la pantalla de llamada entrante nativa de Android, como la aplicación de llamador verdadero para Android
- ¿El análisis de archivos xml en android ocurre en tiempo de ejecución o tiempo de compilación?
<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); } }
- Botón de esquina redonda: ¿Dónde estoy equivocado
- TableLayout con layout_width = matchparent que no coincide con el padre
- Cómo influenciar linebreak en Android Textview
- Android - ImageView superpone otro ImageView
- crear la forma con dos bordes acotados en android
- Viewpager no envuelve contenido después de cargar imágenes desde Internet
- Editar texto sin autocorrección
- Principal no se puede resolver o no es un campo
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 } });