2013-08-23 3 views
2

솔루션은 onCreatDialog입니다. 내 목록보기 XML에있는 LinearLayout 부모에 의해DialogFragment에서 양수/음수 단추를 설정하는 방법은 무엇입니까?

다음

내 코드가 발생했다 추락에 대한 또 다른 문제는 [수정 됨] : 사전 :

+0

당신이 onCreateDialog 안에 당신의 대화를 만듭니다 onCreateView를 작성하고이 버튼 동작을 설정할 필요가 다음이 onCreateDialog을하지 않는 경우. – strike

답변

3

createDialog()에서 봐 주시기 바랍니다에

public class MyDialogFragment extends DialogFragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View mView = inflater.inflate(R.layout.fragment_dialog, null); 
     ListView mListView = (ListView) mView.findViewById(R.id.lvListe); 

     String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"}; 

     getDialog().setTitle("Autres Critères"); 

     mListView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mValues)); 

     return mView; 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     return new AlertDialog.Builder(getActivity()) 
       .setPositiveButton("ok", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int whichButton) { 
           } 
         } 
       ) 
       .setNegativeButton("Cancel", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int whichButton) { 
           onCancel(dialog); 
          } 
         } 
       ) 
       .create(); 
    } 

} 

감사합니다 방법은 DialogFragment입니다. 여기

은 예이다 :

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    return new AlertDialog.Builder(getActivity()) 
      .setTitle("Title") 
      .setPositiveButton("OK", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         // DO SOMETHING 
        } 
       } 
      ) 
      .setNegativeButton("Cancel", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         // DO SOMETHING 
        } 
       } 
      ) 
      .create(); 
} 
+2

이 접근 방식을 사용하면 사용자 정의보기 –

1

(가) AlertDialog.Builder 예처럼 사용하여 시도 : 대신

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    Bundle args = getArguments(); 

    builder.setTitle("Title"); 
    builder.setMessage(args.getString(ARG_MESSAGE)); 
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      //do stuff here 
     } 
    }); 
    //cancel button with dismiss. 
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      dismiss(); 
     } 
    }); 

    return builder.create(); 
} 
+3

이 해제됩니다. 이제 onCreatView를 사용하면 충돌이 발생합니다./ – nsvir

0

(또는 추가하여) 구현을 onCreateView (LayoutInflater에서, 뷰 그룹, 번들)을 생성 할 대화 상자의 계층 구조를 보려면 onCreateDialog (Bundle)을 구현하여 고유 한 사용자 정의 Dialog 객체를 만들 수 있습니다.

AlertDialog를 생성하는 데 가장 유용하여 조각으로 관리되는 표준 경고를 사용자에게 표시 할 수 있습니다. 이것의 간단한 구현 예는 다음과 같습니다

public static class MyDialogFragment extends DialogFragment { 


@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    int title = getArguments().getInt("title"); 

    return new AlertDialog.Builder(getActivity()) 
      .setIcon(R.drawable.alert_dialog_icon) 
      .setTitle(title) 
      .setPositiveButton(R.string.alert_dialog_ok, 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         ((FragmentAlertDialog)getActivity()).doPositiveClick(); 
        } 
       } 
      ) 
      .setNegativeButton(R.string.alert_dialog_cancel, 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         ((FragmentAlertDialog)getActivity()).doNegativeClick(); 
        } 
       } 
      ) 
      .create(); 
} 

}

+3

이제 onCreatView를 사용하면 충돌이 발생합니다. / – nsvir

관련 문제