showDialog는 더 이상 사용되지 않습니다. 대안은 무엇입니까?
호출해야 할 다른 것이 있습니까?
showDialog(TIME_DIALOG_ID);
그것은에있어 이 튜토리얼 하지만 말합니다 되지 이클립스.
에서 http://developer.android.com/reference/android/app/Activity.html
public final void showDialog (int id) API 레벨 1에 추가됨
이 메소드는 API 레벨 13에서 더 이상 사용되지 않습니다. 대신 FragmentManager와 함께 새 DialogFragment 클래스를 사용하십시오. Android 호환성 패키지를 통해 이전 플랫폼에서도 사용할 수 있습니다.
인수를 사용하지 않는 간단한 버전의 showDialog (int, Bundle). 단순히 null 인수로 showDialog (int, Bundle)를 호출합니다.
왜
- 활동 창 위에 떠있는 대화 창을 표시하는 프래그먼트입니다. 이 조각에는 조각의 상태에 따라 적절하게 표시되는 Dialog 개체가 포함되어 있습니다. 대화 상자 제어 (표시, 숨기기, 닫힘시기 결정)는 대화에서 직접 호출하는 것이 아니라 여기에서 API를 통해 수행해야합니다.
- 다음은 Android DialogFragment 대 Dialog에 대한 좋은 토론입니다.
- AlertDialog보다 좋은 또 다른 좋은 토론 DialogFragment 장점
해결하는 방법?
더
- http://developer.android.com/guide/topics/fundamentals/fragments.html
- http://developer.android.com/training/basics/fragments/index.html
이 메소드는 더 이상 사용되지 않습니다. 대신
새DialogFragment
클래스를FragmentManager
사용하십시오. Android 호환성 패키지를 통해 이전 플랫폼에서도 사용할 수 있습니다.
대화 상자를 표시하려면 다음 코드를 사용할 수 있습니다. 이것은 여러 개의 확인란이있는 간단한 AlertDialog 상자를 표시하는 것입니다.
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();
표제
showDialog 함수를 사용하여 전달 된 인수에 따라 다른 대화 상자 또는 다른 대화 상자를 표시하는 경우 자체 함수를 만들고 함수에서 호출 할 수 있습니다 onClickListener()
. 다음과 같은 것 :
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);
}
});
}
함수 정의에 위에 주어진 대화 상자의 코드를 추가합니다.
이 코드는 저에게 효과적이었습니다. 쉽게 고칠 수 있지만 선호하는 방법은 아닐 것입니다.
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
참고 URL : https://stackoverflow.com/questions/10285047/showdialog-deprecated-whats-the-alternative
'program tip' 카테고리의 다른 글
iTextSharp-이메일 첨부 파일로 메모리 내 PDF 보내기 (0) | 2020.08.24 |
---|---|
SAML : 인증서가 서명 내에있는 이유는 무엇입니까? (0) | 2020.08.24 |
쿼리 계획에서 "비트 맵 힙 스캔"이란 무엇입니까? (0) | 2020.08.24 |
잘못된 제네릭 형식 인수에 대한 최상의 예외 (0) | 2020.08.24 |
Visual Studio 2012에서 아이콘을 변경할 수 있습니까? (0) | 2020.08.24 |