C'è qualcos'altro che dovrebbe essere chiamato?
showDialog(TIME_DIALOG_ID);
È in questo tutorial ma dice deprecato in Eclipse.
C'è qualcos'altro che dovrebbe essere chiamato?
showDialog(TIME_DIALOG_ID);
È in questo tutorial ma dice deprecato in Eclipse.
Risposte:
Da http://developer.android.com/reference/android/app/Activity.html
public final void showDialog (int id) Aggiunto nel livello API 1
Questo metodo è stato deprecato nel livello API 13. Utilizzare invece la nuova classe DialogFragment con FragmentManager; questo è disponibile anche su piattaforme precedenti tramite il pacchetto di compatibilità Android.
Versione semplice di showDialog (int, Bundle) che non accetta argomenti. Chiama semplicemente showDialog (int, Bundle) con argomenti nulli.
Perché
Come risolvere?
Di Più
Questo metodo è deprecato.
Usa invece la nuovaDialogFragmentclasse conFragmentManager; questo è disponibile anche su piattaforme precedenti tramite il pacchetto di compatibilità Android.
Per visualizzare la finestra di dialogo, è possibile utilizzare il codice seguente. Questo per visualizzare una semplice finestra di dialogo AlertDialog con più caselle di controllo:
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();
Considerando che se stai usando la funzione showDialog per visualizzare una finestra di dialogo diversa o qualsiasi altra cosa secondo gli argomenti passati, puoi creare una funzione self e chiamarla sotto la onClickListener()funzione. Qualcosa di simile a:
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);
}
});
}
e aggiungere il codice della finestra di dialogo indicato sopra nella definizione della funzione.
Questo codice ha funzionato per me. Soluzione facile ma probabilmente non è un modo preferito.
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