2014-11-03 70 views
0

我有一個片段的問題。 片段中有一個對話框,以及該對話框中的片段。 但是當我添加第二個片段時,有一個IllegalArgumentException : No view found for id ***** (fr.*****:id/container_list_collections) for fragment FragmentCollectionVignetteIllegalArgumentException在對話框中的片段

FragmentHP.java

public class FragmentHP extends Fragment { 

/** Bouton Ajouter à **/ 
private Button btAddTo; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) { 
    View vueFragmentHP = inflater.inflate(R.layout.fragment_hp, container, false); 

    getFragmentManager().beginTransaction().replace(R.id.container_dernier_ajout, new FragmentDerniersAjoutsHP()).commit(); 
    getFragmentManager().beginTransaction().replace(R.id.container_collections, new FragmentCollectionsHP()).commit(); 
    getFragmentManager().beginTransaction().replace(R.id.container_ebooks, new FragmentEbooksHP()).commit(); 
    getFragmentManager().beginTransaction().replace(R.id.container_games, new FragmentGamesHP()).commit(); 
    getFragmentManager().beginTransaction().replace(R.id.container_software, new FragmentSoftwareHP()).commit(); 
    getFragmentManager().beginTransaction().replace(R.id.container_digital_creation, new FragmentDigitalCreationHP()).commit(); 

    btAddTo = (Button) vueFragmentHP.findViewById(R.id.bt_collections); 

    btAddTo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      LayoutInflater inflater = getActivity().getLayoutInflater(); 
      View view = inflater.inflate(R.layout.dialog_add_to, null); 
      final Dialog dialog = new Dialog(getActivity()); 

      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog.setContentView(view); 
      dialog.show(); 
      dialog.setCanceledOnTouchOutside(false); 

      Button btValider = (Button) view.findViewById(R.id.bt_add_to); 

      getFragmentManager().beginTransaction().add(R.id.container_list_collections, new FragmentCollectionVignette()).commit(); 
     } 
    }); 

    return vueFragmentHP; 
} 

}

dialog_add_to.xml

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <TextView 
     android:id="@+id/tv_add_to" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/add_to"/> 
    <TextView 
     android:id="@+id/tv_choose_collection" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/choose_collection" 
     android:layout_below="@id/tv_add_to"/> 

    <FrameLayout 
     android:id="@+id/container_list_collections" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tv_choose_collection"/> 
    <Button 
     android:id="@+id/bt_add_to" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/valider" 
     android:layout_below="@id/container_list_collections"/> 
</RelativeLayout> 

問題是什麼? (對不起,我很不好英語)

+0

您是否嘗試清潔您的項目?有時更改資源不會重新生成R文件。 – Marius 2014-11-03 15:23:57

+0

是的,但我有相同的錯誤 – MichelRobico 2014-11-03 15:29:10

回答

0

我認爲這個問題是在這條線 getFragmentManager()調用BeginTransaction()加(R.id.container_list_collections,新FragmentCollectionVignette())提交()。;

將此更改爲 this.getActivity()。getFragmentManager()。beginTransaction()。add(R.id.container_list_collections,new FragmentCollectionVignette())。commit();

+0

有相同的錯誤... – MichelRobico 2014-11-03 15:10:50

+0

你想渲染一個不同的片段按鈕點擊對話框。 – 2014-11-03 15:15:45

+0

我想在一個對話框中插入一個片段。 – MichelRobico 2014-11-03 15:17:55