Y a-t-il autre chose qui devrait être appelé?
showDialog(TIME_DIALOG_ID);
C'est dans ce tutoriel mais dit obsolète dans Eclipse.
Y a-t-il autre chose qui devrait être appelé?
showDialog(TIME_DIALOG_ID);
C'est dans ce tutoriel mais dit obsolète dans Eclipse.
Réponses:
Depuis http://developer.android.com/reference/android/app/Activity.html
public final void showDialog (int id) Ajouté au niveau d'API 1
Cette méthode était obsolète au niveau d'API 13. Utilisez plutôt la nouvelle classe DialogFragment avec FragmentManager; ceci est également disponible sur les anciennes plates-formes via le package de compatibilité Android.
Version simple de showDialog (int, Bundle) qui ne prend aucun argument. Appelle simplement showDialog (int, Bundle) avec des arguments nuls.
Pourquoi
Comment résoudre?
Plus
Cette méthode est obsolète.
Utilisez plutôt la nouvelleDialogFragment
classe avecFragmentManager
; ceci est également disponible sur les anciennes plates-formes via le package de compatibilité Android.
Pour afficher la boîte de dialogue, vous pouvez utiliser le code suivant. Ceci permet d'afficher une simple boîte de dialogue AlertDialog avec plusieurs cases à cocher:
AlertDialog.Builder alertDialog= new AlertDialog.Builder(MainActivity.this); .
alertDialog.setTitle("this is a dialog box ");
alertDialog.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(),"ok ive wrote this 'ok' here" ,Toast.LENGTH_SHORT).show();
}
});
alertDialog.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "cancel ' comment same as ok'", Toast.LENGTH_SHORT).show();
}
});
alertDialog.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), items[which] +(isChecked?"clicked'again i've wrrten this click'":"unchecked"),Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();
Alors que si vous utilisez la fonction showDialog pour afficher une boîte de dialogue différente ou quoi que ce soit selon les arguments passés, vous pouvez créer une fonction auto et l'appeler sous la onClickListener()
fonction. Quelque chose comme:
public CharSequence[] items={"google","Apple","Kaye"};
public boolean[] checkedItems=new boolean[items.length];
Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt=(Button) findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
display(0);
}
});
}
et ajoutez le code de la boîte de dialogue ci-dessus dans la définition de la fonction.
Ce code a fonctionné pour moi. Solution facile mais probablement pas un moyen préféré.
public void onClick (View v) {
createdDialog(0).show(); // Instead of showDialog(0);
}
protected Dialog createdDialog(int id) {
// Your code
}
package com.keshav.datePicker_With_Hide_Future_Past_Date;
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
EditText ed_date;
int year;
int month;
int day;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed_date=(EditText) findViewById(R.id.et_date);
ed_date.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Calendar mcurrentDate=Calendar.getInstance();
year=mcurrentDate.get(Calendar.YEAR);
month=mcurrentDate.get(Calendar.MONTH);
day=mcurrentDate.get(Calendar.DAY_OF_MONTH);
final DatePickerDialog mDatePicker =new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday)
{
ed_date.setText(new StringBuilder().append(year).append("-").append(month+1).append("-").append(day));
int month_k=selectedmonth+1;
}
},year, month, day);
mDatePicker.setTitle("Please select date");
// TODO Hide Future Date Here
mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());
// TODO Hide Past Date Here
// mDatePicker.getDatePicker().setMinDate(System.currentTimeMillis());
mDatePicker.show();
}
});
}
}
// Its Working