2017-02-22 1 views
0

Android에서 대화 상자를 사용하려고합니다. 최근 Builder 클래스를 사용하는이 예제를 보았습니다.setView를 빌더와 함께 사용 하시겠습니까?

코드는 지금이 줄을 입력하는 것처럼

builder.setView(dialogView).setMessage("Add a new note"); 

이 팝업 오류 메시지가 "setView를 확인할 수 없습니다"입니다 코드 줄에 보여줍니다 다음

AlertDialog.Builder builder= new AlertDialog.Builder(getActivity()); 
View dialogView = inflater.inflate(R.layout.dialog_show_note, null); 

입니다

나는 어떤 실수를하고 있는지 또는 책에 약간의 오류가 있는지 잘 모르겠습니다. Builder 클래스에도 setView 메서드이 포함되어 있습니까?

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

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     View dialogView = inflater.inflate(R.layout.dialog_new_note, null); 

     builder.setView(dialogView).setMessage("Add a new note"); //error 

    } 
} 
+0

"다음은 보여줍니다 ..."어떤 소스를 인용하고 있습니까? –

+1

클래스의 메소드를 찾으려면 API 문서를 살펴보십시오. –

+0

실제로 책에서 나온 것입니다! – pluto20010

답변

0

나는이 시도하고 난 당신이 아니라 그 같은 대화 상자의 경우, 다른 한편으로 onCreateDilaog.On보다에서 onCreate 내부 코드를 배치해야한다고 생각 -은 다음과 같이

오류 개까지 전체 코드 예제입니다 대화 상자 클래스로 확장 한 다음 onCreateView 메서드에 레이아웃 단편화기를 제공해야합니다.

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     View dialogView = getActivity().getLayoutInflater().inflate(R.layout.my_layout, null); 
     builder.setView(dialogView).setMessage("kqhwdi"); 
    } 

별도의 경고 대화 상자를 만들기 위해 onCreate() 또는 onViewCreated()에서 만들어야한다고 생각합니다.

+0

그래서 위의 코드가 잘못된 것이라고 암시하고 있습니까? – pluto20010

+0

아니요. 나는 당신의 방식대로 해보려고 노력했지만 오류가 발생했습니다. 그러나 생성시에는 잘 작동합니다.이 방법으로 시도해보고 문제가 해결되는지 확인하는 중입니다. –

+0

내 길은 없었습니다. 나는 그 책의 예를 인용했습니다. 네가 말했듯이 그것이 효과가있다. 하지만 책에 어떤 오류가 있는지 확인하고 싶었습니다. – pluto20010

관련 문제