0

번호 선택 도구에 문제가 있습니다. 난 널 객체 참조를 '무효 android.widget.NumberPicker.setMinValue (int)를'I이 오류 가상 메소드를 호출DialogFragment의 AlertDialog에서 NumberPicker 오류가 발생했습니다.

시도를 얻을 numberpicker 자바 코드의 최소 및 최대 값을 추가 할 때

물론, 내 numberpicker를 인식하지 못하기 때문에 값을 추가 할 수 없습니다.

누군가가이 문제의 해결책을 찾았습니다. here,하지만 실제로는 맞지 않습니다. 다음 대화 상자에서 다른 숫자 피커가 필요할 것이므로 이전 피벗을 따라 조정하십시오.

나는 activity 내에서 작동해야하므로 findViewById() 메서드에 관한 문제라고 생각합니다. 어떻게 든 getActivity()가 작동하지 않습니다. 미리 감사드립니다. 내 코드는 다음과 같습니다.

public class MyDialog extends DialogFragment { 

public MyDialog(){} 

public static MyDialog newInstance(){ 
    MyDialog evet = new MyDialog(); 
    return evet; 
} 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState){ 
     AlertDialog.Builder bodyBuilder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflator = getActivity().getLayoutInflater(); 
     bodyBuilder.setTitle(R.string.delirtmen); 
     NumberPicker np = (NumberPicker) getActivity().findViewById(R.id.nambir); 
     np.setMinValue(1); 
     np.setMaxValue(100); 
     final int comolokko = np.getValue(); 
     bodyBuilder.setView(inflator.inflate(R.layout.layout_diyalog, null)) 
       .setPositiveButton("Devam", new DialogInterface.OnClickListener(){ 
        @Override 
          public void onClick(DialogInterface dialog, int id){ 
         Intent intent = new Intent(getActivity(), Olurmuki.class); 
         intent.putExtra("deger", comolokko); 
         startActivity(intent); 
        } 
       }) 
       .setNegativeButton("İptal",new DialogInterface.OnClickListener(){ 
        @Override 
        public void onClick(DialogInterface dialog, int id){ 
         MyDialog.this.getDialog().cancel(); 
        } 
       }); 
     return bodyBuilder.create(); 
}} 
+1

나 레이아웃을 조정하고 뷰를 설정하기 전에 비정상 뷰를 사용하여 NumberPicker를 가져옵니다. 보기 ..'보기보기 = (여기서 팽창하세요)'. 그런 다음 view.findViewById (...)를 사용하여 NP를 찾습니다. 그럼 builder.setView (view). 사과, 전화로 타이핑. –

+0

예, 감사합니다. 카이, 감사합니다. –

+0

예. 감사합니다. @ cricket_007 감사합니다. –

답변

0

저는 초보자이며 Android Studio가 아닙니다. 잘하면이 기능이 작동합니다.

대화 상자에서 번호 선택 도구에 액세스하려는 질문을 이해하면 어떻게됩니까? 번호 선택 도구가 대화 상자 안에 있으면 빌더보기에 액세스 한 다음 번호 선택 도구를 가져와야합니다.

이 줄이 문제 일 가능성이 큽니다.

NumberPicker np = (NumberPicker) getActivity().findViewById(R.id.nambir); 

사용이 대신 :

NumberPicker np = (NumberPicker) bodyBuilder.findViewById(R.id.nambir); 

이 당신의 경고 대화 상자의 뷰 내부의 번호 선택 도구를 찾습니다 당신이 참조를 얻어야한다.

참고 :이 방법으로 문제가 해결되지 않으면이를 참조하십시오. https://stackoverflow.com/a/13026250/4502550

+0

bodyBuilder의 뷰가 할당 될 때까지 작동합니다. 이 질문을 중복으로 표시했는데 문제가 될 가능성이 큽니다. –

0

이는 getContext()를

public Context getContext(){return this;} 

및 작성이

시도하십시오

NumberPicker np = (NumberPicker) getContext().findViewById(R.id.nambir); 

이 작품은 단지 활동

에서 XML없이 수 선택기를 만들 넣은 사람은 아니다 경우
public void Dialog(){ 


    final android.support.v7.app.AlertDialog.Builder alert = new android.support.v7.app.AlertDialog.Builder(this,R.style.CustomDialog); 
    alert.setCancelable(true); 


    LinearLayout l1 = new LinearLayout(getApplicationContext()); 


    l1.setOrientation(LinearLayout.HORIZONTAL); 
    final NumberPicker number = new NumberPicker((this)); 
    number.setMaxValue(12); 
    number.setMinValue(1); 
    number.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); 
    number.setWrapSelectorWheel(true);