3

조각을 사용하여 어댑터 목록을 작성했습니다. 클릭 할 때 목록의 각 항목에 대해 다른 대화 상자를 표시하려고합니다. 리스너를 목록 항목에 추가하고 항목 중 하나 (두 번째 항목)에 대해 대화 상자가 표시되도록 코드를 작성했습니다. 그러나 해당 항목을 클릭하면 전화 화면이 어두워 지지만 대화 상자에이 표시되지 않습니다. 아래에 관련 코드를 추가했습니다. 나는 인터넷에서이 문제에 관해 많은 것을 조사해 보았으며 많은 다른 일을 시도했지만 나에게는 아무런 효과가없는 것으로 보인다. 앱의 다른 모든 항목이 정상적으로 작동합니다.화면이 어두워 지지만 대화 상자가 나타나지 않습니다.

어떤 종류의 도움도 정말 감사하겠습니다. 미리 감사드립니다.

DialogFragment 클래스 :

public class FragmentAddWatchedMovie extends ListFragment{ 
@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    SetListAdapter(); 
    SetClickListener(); 

} 
private void SetClickListener() { 
    ListView listView = (ListView) getView().findViewById(android.R.id.list); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      switch (position){ 
       case 0:{ 
        FragmentManager manager = getFragmentManager(); 
        GenreDialogFragment fragment = new GenreDialogFragment(); 
        fragment.setTargetFragment(FragmentAddWatchedMovie.this,0); 
        fragment.show(manager, "GenreDialog_Fragment"); 
        break; 

       } 
       case 1:{ 

       } 
       case 2:{ 

       } 
       case 3:{ 

       } 
       case 4:{ 

       } 
       case 5:{ 

       } 
      } 

     } 
    }); 

} 
+0

시도에서 환경 설정을 설정하기 전에 대화 상자를 생성하기 때문에 당신을 위해 작동하지 않았다

"에 AlertDialog 대화 = builder.create를();" 리턴 라인 바로 위에 올려주세요. – Cata

+0

효과가있었습니다! 정말 고맙습니다 :) –

답변

2

이동을 다음 줄 : "AlertDialog dialog = builder.create();"바로 Dialog 클래스의 리턴 라인 위를

public class GenreDialogFragment extends DialogFragment{ 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    AlertDialog dialog = builder.create(); 
    builder.setTitle(R.string.title_genre_dialog); 
    builder.setMessage("Are you sure?"); 
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // on success 
     } 
    }); 
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 

    return dialog; 
} 
} 

부모 조각 클래스가있는 나는 대화 상자를 표시 할 . 이동할 빌더 :