Gibt es noch etwas, das genannt werden sollte?
showDialog(TIME_DIALOG_ID);
Es ist in diesem Tutorial , sagt aber in Eclipse veraltet .
Gibt es noch etwas, das genannt werden sollte?
showDialog(TIME_DIALOG_ID);
Es ist in diesem Tutorial , sagt aber in Eclipse veraltet .
Antworten:
Von http://developer.android.com/reference/android/app/Activity.html
public final void showDialog (int id) In API-Ebene 1 hinzugefügt
Diese Methode wurde in API-Ebene 13 nicht mehr unterstützt. Verwenden Sie stattdessen die neue DialogFragment-Klasse mit FragmentManager. Dies ist auch auf älteren Plattformen über das Android-Kompatibilitätspaket verfügbar.
Einfache Version von showDialog (int, Bundle), die keine Argumente akzeptiert. Ruft einfach showDialog (int, Bundle) mit Nullargumenten auf.
Warum
Wie löst man?
Mehr
Diese Methode ist veraltet.
Verwenden Sie stattdessen die neueDialogFragmentKlasse mitFragmentManager; Dies ist auch auf älteren Plattformen über das Android-Kompatibilitätspaket verfügbar.
Zum Anzeigen des Dialogfelds können Sie den folgenden Code verwenden. Hiermit wird ein einfaches AlertDialogfeld mit mehreren Kontrollkästchen angezeigt:
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();
Wenn Sie die showDialog-Funktion verwenden, um ein anderes Dialogfeld oder etwas anderes gemäß den übergebenen Argumenten anzuzeigen, können Sie eine Selbstfunktion erstellen und diese unter der onClickListener()Funktion aufrufen . Etwas wie:
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);
}
});
}
und fügen Sie den oben in der Funktionsdefinition angegebenen Code des Dialogfelds hinzu.
Dieser Code hat bei mir funktioniert. Einfache Lösung, aber wahrscheinlich kein bevorzugter Weg.
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