IllegalArgumentException:フラグメントのID 0x7F07003Cのビューが見つかりませんでした -- android フィールド と android-fragments フィールド 関連 問題

IllegalArgumentException: No view found for id 0x7f07003c for fragment












2
vote

問題

日本語

私は断片化に新しいです。簡単なフラグメントの例を試しました。しかしそれはエラーをスローします。何が悪いのかわかりません。

<事前> <コード> public class NewActivity extends Activity { int mStackLevel = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { Fragment newFragment = NewFragment .newInstance(mStackLevel); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(R.id.simple_fragment, newFragment).commit(); } else { mStackLevel = savedInstanceState.getInt("level"); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("level", mStackLevel); } public static class NewFragment extends Fragment { int mNum; Context context; static NewFragment newInstance(int num) { NewFragment f = new NewFragment(); // Supply num input as an argument. Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNum = getArguments() != null ? getArguments().getInt("num") : 1; context = getActivity(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.example_fragment, container, false); return v; } } }

私のlogcatは:

java.lang.RuntimeException:アクティビティを開始できません.completifo {com.example.fragmentExample / com.example.fragmentExample.Newactivity}:java.lang.IllegalArgumentException:No Fragment用のID 0x7F07003Cのビューが見つかりました{40FF0850#0 ID = 0x7F07003C}

英語

I am new to Fragments. I tried simple fragment example. But it throws the error. I don't know what is wrong.

public class NewActivity extends Activity {     int mStackLevel = 1;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         if (savedInstanceState == null) {             Fragment newFragment = NewFragment                     .newInstance(mStackLevel);             FragmentTransaction ft = getFragmentManager().beginTransaction();             ft.add(R.id.simple_fragment, newFragment).commit();         } else {             mStackLevel = savedInstanceState.getInt("level");         }     }     @Override     public void onSaveInstanceState(Bundle outState) {         super.onSaveInstanceState(outState);         outState.putInt("level", mStackLevel);     }     public static class NewFragment extends Fragment {         int mNum;         Context context;          static NewFragment newInstance(int num) {             NewFragment f = new NewFragment();              // Supply num input as an argument.             Bundle args = new Bundle();             args.putInt("num", num);             f.setArguments(args);              return f;         }          @Override         public void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);             mNum = getArguments() != null ? getArguments().getInt("num") : 1;             context = getActivity();         }          @Override         public View onCreateView(LayoutInflater inflater, ViewGroup container,                 Bundle savedInstanceState) {             View v = inflater.inflate(R.layout.example_fragment, container,                     false);                      return v;         }     }  } 

My logcat shows:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.FragmentExample/com.example.FragmentExample.NewActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f07003c for fragment NewFragment{40ff0850 #0 id=0x7f07003c}

</div
     

回答リスト

6
 
vote
vote
ベストアンサー
 
<事前> <コード> ft.add(R.id.simple_fragment, newFragment).commit();

あなたの活動のために setContentView を見逃しました。あなたのフラグメントはビュー階層なしでは追加できません。

注:あなたのフラグメントはアクティビティによってホストされています。そのため、最初にコンテンツをアクティビティに設定する必要があります。

 
ft.add(R.id.simple_fragment, newFragment).commit(); 

you missed setContentView for your Activity. Your Fragment can not be added without a View hierarchy.

Note : Your Fragment is hosted by an activity. So you need to set the content to the activity first.

</div
 
 
 
 
1
 
vote

このメソッドをあなたの方法

に置き換えるだけです <事前> <コード> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(Your_layout_file); if (savedInstanceState == null) { Fragment newFragment = NewFragment .newInstance(mStackLevel); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(R.id.simple_fragment, newFragment).commit(); } else { mStackLevel = savedInstanceState.getInt("level"); } }

この行を見逃した 99887763

 

Just replace this method with your method

@Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(Your_layout_file);          if (savedInstanceState == null) {             Fragment newFragment = NewFragment                     .newInstance(mStackLevel);             FragmentTransaction ft = getFragmentManager().beginTransaction();             ft.add(R.id.simple_fragment, newFragment).commit();         } else {             mStackLevel = savedInstanceState.getInt("level");         }     } 

you missed this line setContentView(Your_layout_file);

</div
 
 
0
 
vote

この答えは、断片化のときに発生する可能性がある、または断片に変換しているときに発生する可能性がある愚かな間違いを強調しています。

フラグメント内のフラグメントを fragmentManager に置き換えようとしている場合は、問題を引き起こす可能性がある親フラグメントを膨張させないです。

basefragment.java <コード> OnCreateView : <事前> <コード> if (savedInstanceState == null) { getFragmentManager().beginTransaction() .replace(R.id.container, new DifferentFragment()) .commit(); } return super.onCreateView(inflater, container, savedInstanceState);

super.onCreateView(inflater, container, savedInstanceState); を置き換えます。 フラグメントの正しいレイアウトを膨張させること:

<事前> <コード> return inflater.inflate(R.layout.base_fragment, container, false);
 

This answer highlights a silly mistake that may occur, that arises when nesting fragments or you are converting activities to fragments.

If you are trying to replace a fragment within a fragment with the fragmentManager but you are not inflating the parent fragment that can cause an issue.

In BaseFragment.java OnCreateView:

if (savedInstanceState == null) {             getFragmentManager().beginTransaction()                     .replace(R.id.container, new DifferentFragment())                     .commit();         }  return super.onCreateView(inflater, container, savedInstanceState); 

Replace super.onCreateView(inflater, container, savedInstanceState); with inflating the correct layout for the fragment:

        return inflater.inflate(R.layout.base_fragment, container, false); 
</div
 
 

関連する質問

1  oNactivityResult()新しいアクティビティがフラグメントから始めたときに主な活動で呼び出されない  ( Onactivityresult not called on main activity when new activity started from fr ) 
StartActivityForResult()がフラグメントから呼び出されたときに、OnActivityResult()がフラグメントで呼び出されない理由が多数あることを知っています。しかし私の訴訟は異なります。 マイアクティビティAは、結果のためにアク...

16  Android:断片からActionBarメニュー項目を変更します  ( Android change actionbar menu items from fragment ) 
断片で行われるものに基づいて、活動行動バーの内容を変更する方法の迅速な例を挙げてください。私の意図: ノーマルメニュー項目 - &gt;フラグメント内の何かが移動されます - &gt。メニュー項目の保存/廃棄ボタンに変更します。 私の最初のインパルスは、アクテ...

125  FragmentPagerAdapter GetItemは呼び出されません  ( Fragmentpageradapter getitem is not called ) 
fragmentPagerAdapterでフラグメントを再利用できません..StroasionItem()メソッドを使用して、フラグメントを削除していますが、それでもgetItem()と呼ばれていません。 FragmentStatePagerAdapter ...

-1  支援の発生  ( Occurence of support ) 
私はFacebookのログインアプリケーションを開発しています。そこでアクティビティの代わりにアクティビティサブクラス<コード> FragmentActivity を開始できません。私が使ったコードの下を見つけてください。 エラー:Android.Suppor...

2  RecyClerviewからのデータが消えます  ( Disappearing data from recyclerview ) 
ViewPagerを含むフラグメントを使ってアプリを作成しました。そのViewPagerの内側はRecyClerviewを使用してリストを表示しています。アプリを起動するとすべてが素晴らしいです。しかし、私がいくつかのタブをスワイプして戻ってくるリストは表示...

0  新しい活動を開始し、それらをフラグメントベースのレイアウトに追加する  ( Starting new activities and adding them to a fragment based layout ) 
私はフラグメントAPIがきれいに新しいので、私の質問があります。 Activity と ActionBar がタブであるとしましょう。アプリケーションからメッセージングアプリケーションを起動したいとします。通常は、新しい Activity として始まります。 ...

0  Android - フラグメントはSaveinStanseStateではありません  ( Android fragment doesnt saveinstancestate ) 
私はAndroidに新しい、私はフラグメントを持っていて、それはonpause、destroyview、destroy、destray、しかし、OnSaveInStanseStateは呼ばれません。 これは予想されていますか? 状態を保存する方法は? <事...

0  ItemClickのAndroidフラグメント(ListView)  ( Android fragments on itemclick listview ) 
アクティビティを持ちたい、ここではレイアウトの中で、固定コンテンツ(配列)を持つListViewがあり、右側には動的コンテンツが欲しい(SO MISTMENTS)。 MainLayoutはこのようなものです(Activity_Vizitare.xml): <事...

38  FragmentPagerAdapter GetItemがトリガされていません  ( Fragmentpageradapter getitem is not being triggered ) 
現在、<コード> FragmentActivity で、次のコードを使用して2種類のフラグメントを切り替えます。 <事前> <コード> private void toggle() { Fragment oldFragment = getSupportF...

0  WebViewフラグメント用のローディングスピナー  ( Loading spinner for webview fragment ) 
次は、WebViewを示すMy ScoreFragment.javaのコードです。 <事前> <コード> IMPORT BLAH BLAH public class ScoreFragment extends Fragment { public ScoreF...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有