Actuellement, j'utilise le code ci-dessous et je peux obtenir une date actuelle pour être renvoyée dans le champ de texte. Cependant, je n'ai aucune idée de l'affichage de la date sélectionnée.
J'ai également utilisé DatePicker et il affiche une date sélectionnée bien, mais je préférerais CalendarView. Merci p>
6 Réponses :
Calendar c = Calendar.getInstance(); Calendar is different from CalendarView. CalendarView is a descendant of View so it has many event handlers, like an onClickListener. Perhaps this is what you are trying to find?
Est-ce que quelque chose comme ça fonctionne: calendarview calendarmy = (calendarview) FOYVISHYID (r.id.calendarview1);
dans Oncreate:
CalendarView v = new CalendarView( this );
v.setOnDateChangeListener( new CalendarView.OnDateChangeListener() {
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
this.calendar = new GregorianCalendar( year, month, dayOfMonth );
}//met
});
Je reçois une erreur pour ce calendrier.calendar ne peut pas être résolu ou n'est pas un champ
CalendarView view = new CalendarView(this);
setContentView(view);
view.setOnDateChangeListener(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView arg0, int year, int month,
int date) {
Toast.makeText(getApplicationContext(),date+ "/"+month+"/"+year,4000).show();
}
});
This will display the user selected date.
CalendarView view = new CalendarView(this);
setContentView(view);
view.setOnDateChangeListener(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView arg0, int year, int month,
int date) {
Toast.makeText(getApplicationContext(),date+ "/"+month+"/"+year,4000).show();
}
});
CalendarView cv = (CalendarView)findViewById(R.id.cv1);
Calendar c = Calendar.getInstance();
SimpleDateFormat ss = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date(cv);
String currentdate= ss.format(date);
TextView editText = (TextView) this.findViewById(R.id.textfield1);
editText.setText(currentdate);
Ajout d'une explication de ce que vous avez fait pour résoudre le problème serait utile.
Date Date = nouvelle date (CV); a été obsolète.
Pourquoi avez-vous passé CV Intérieur Constructeur de date?
simple Activity_Main.xml strong> P > kotlin code> code pour obtenir la date sélectionnée parmi calenderview code>: strong> import android.os.Bundle
import android.text.format.DateFormat
import android.util.Log
import android.widget.CalendarView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.example.testandcheck.databinding.ActivityMainBinding
import java.util.*
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding // Binding object for ViewBinding.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// Set date change listener on calenderView.
// Callback notified when user select a date from CalenderView on UI.
binding.calendarView.setOnDateChangeListener { calView: CalendarView, year: Int, month: Int, dayOfMonth: Int ->
// Create calender object with which will have system date time.
val calender: Calendar = Calendar.getInstance()
// Set attributes in calender object as per selected date.
calender.set(year, month, dayOfMonth)
// Now set calenderView with this calender object to highlight selected date on UI.
calView.setDate(calender.timeInMillis, true, true)
Log.d("SelectedDate", "$dayOfMonth/${month + 1}/$year")
}
// Example button to show get selected date from CalenderView and show in Toast.
binding.button.setOnClickListener {
// Fetch long milliseconds from calenderView.
val dateMillis: Long = binding.calendarView.date
// Create Date object from milliseconds.
val date: Date = Date(dateMillis)
// Get Date values and created formatted string date to show in Toast.
val selectedDayOfWeek = DateFormat.format("EEEE", date) as String // Monday
val selectedDay = DateFormat.format("dd", date) as String // 05
val selectedMonthString = DateFormat.format("MMM", date) as String // Jul
val selectedMonthNumber = DateFormat.format("MM", date) as String // 6 --> Month Code as Jan = 0 till Dec = 11.
val selectedYear = DateFormat.format("yyyy", date) as String // 2021
val strFormattedSelectedDate = "$selectedDay-${selectedMonthNumber + 1}-$selectedYear ($selectedDayOfWeek)"
Toast.makeText(applicationContext, "Selected Date = $strFormattedSelectedDate", Toast.LENGTH_SHORT).show()
}
}
}
Votre question n'est pas claire. Que voulez-vous exactement ?
Si l'utilisateur sélectionne la date du calendrierView, je souhaite la stocker dans la variable et le montrer dans l'activité suivante, l'utilisateur peut donc obtenir le message que vous avez sélectionné cette date 25-04-2012
Passez-le dans l'intention supplémentaire lorsque vous appelez votre prochaine activité. Sinon, apprenez à utiliser startactivityForresult
Ce n'est pas le problème, mais comment puis-je extraire la date de CalendarView et afficher la date sélectionnée?