'확인'버튼으로 메시지 상자를 추가하는 방법은 무엇입니까?


81

확인 버튼이있는 메시지 상자를 표시하고 싶습니다. 다음 코드를 사용했지만 인수로 컴파일 오류가 발생합니다.

AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
dlgAlert.setMessage("This is an alert with no consequence");
dlgAlert.setTitle("App Title");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(true);
dlgAlert.create().show();

Android에서 메시지 상자를 표시하려면 어떻게해야합니까?


어떻게 든 당신의 코드는 나를 위해 그대로 작동했습니다. 내 SDK 설정 <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="15" />이 제안하는 컴파일 오류가 발생하지 않은 이유와 관련이있을 수 있습니다.
RBT

답변:


71

확인 긍정 버튼에 대한 클릭 리스너를 추가하지 않은 문제가있을 수 있습니다.

dlgAlert.setPositiveButton("Ok",
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          //dismiss the dialog  
        }
    });

30

귀하의 상황에서는 짧고 간단한 메시지로만 사용자에게 알리고 싶기 때문에 Toasta는 더 나은 사용자 경험을 제공합니다.

Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show();

업데이트 : 플로팅 작업은 재료 설계 응용 프로그램에 대한 토스트 대신 이제 좋습니다.

독자가 읽고 이해할 수있는 시간을주고 싶은 더 긴 메시지가있는 경우 DialogFragment. ( 현재 문서는AlertDialog 직접 호출하는 대신 조각으로 래핑하는 것을 권장합니다 .)

확장하는 클래스 만들기 DialogFragment:

public class MyDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("App Title");
        builder.setMessage("This is an alert with no consequence");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // You don't have to do anything here if you just 
                // want it dismissed when clicked
            }
        });

        // Create the AlertDialog object and return it
        return builder.create();
    }
}

그런 다음 활동에서 필요할 때 호출하십시오.

DialogFragment dialog = new MyDialogFragment();
dialog.show(getSupportFragmentManager(), "MyDialogFragmentTag");

또한보십시오

여기에 이미지 설명 입력


토스트에 대한 좋은 생각. 나에게는 가져 오기가 필요했습니다. [import android.widget.Toast;]
AnthonyVO

9

코드는 나를 위해 잘 컴파일됩니다. 가져 오기를 추가하는 것을 잊었을 수 있습니다.

import android.app.AlertDialog;

어쨌든, 여기에 좋은 튜토리얼이 있습니다 .


3
@Override
protected Dialog onCreateDialog(int id)
{
    switch(id)
    {
    case 0:
    {               
        return new AlertDialog.Builder(this)
        .setMessage("text here")
        .setPositiveButton("OK", new DialogInterface.OnClickListener() 
        {                   
            @Override
            public void onClick(DialogInterface arg0, int arg1) 
            {
                try
                {

                }//end try
                catch(Exception e)
                {
                    Toast.makeText(getBaseContext(),  "", Toast.LENGTH_LONG).show();
                }//end catch
            }//end onClick()
        }).create();                
    }//end case
  }//end switch
    return null;
}//end onCreateDialog
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.