Apakah ada hal lain yang harus dipanggil?
showDialog(TIME_DIALOG_ID);
Ada dalam tutorial ini tetapi mengatakan usang di Eclipse.
Apakah ada hal lain yang harus dipanggil?
showDialog(TIME_DIALOG_ID);
Ada dalam tutorial ini tetapi mengatakan usang di Eclipse.
Jawaban:
Dari http://developer.android.com/reference/android/app/Activity.html
public final void showDialog (int id) Ditambahkan dalam API level 1
Metode ini tidak digunakan lagi di API level 13. Gunakan kelas DialogFragment baru dengan FragmentManager sebagai gantinya; ini juga tersedia di platform lama melalui paket kompatibilitas Android.
Versi sederhana showDialog (int, Bundle) yang tidak membutuhkan argumen apa pun. Cukup panggil showDialog (int, Bundle) dengan argumen null.
Mengapa
Bagaimana menyelesaikan?
Lebih
Dari Activity#showDialog(int)
:
Metode ini tidak digunakan lagi.
GunakanDialogFragment
kelas baru denganFragmentManager
; ini juga tersedia di platform lama melalui paket kompatibilitas Android.
Untuk menampilkan kotak dialog, Anda dapat menggunakan kode berikut. Ini untuk menampilkan kotak AlertDialog sederhana dengan beberapa kotak centang:
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();
Sedangkan jika Anda menggunakan fungsi showDialog untuk menampilkan kotak dialog yang berbeda atau apapun sesuai dengan argumen yang diteruskan, Anda dapat membuat fungsi sendiri dan dapat memanggilnya di bawah onClickListener()
fungsi. Sesuatu seperti:
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);
}
});
}
dan tambahkan kode kotak dialog yang diberikan di atas dalam definisi fungsi.
Kode ini berhasil untuk saya. Perbaikan mudah tapi mungkin bukan cara yang disukai.
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