2016-02-03 3 views
1

я очень смущает эта ошибка, что я делаю не то, что пытается заменить фрагмент в DetailActivity, который DetailActivityFragment, который был заменен OnClick фрагментом QuickFactsНет вид найдено идентификатор для фрагмента

public class DetailActivityFragment extends Fragment{ 

TextView textView; 
ImageView imageView; 
TextView details; 
Button button; 
public DetailActivityFragment() { 
} 

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


    Bundle getBundle = getActivity().getIntent().getExtras(); 

    String name = getBundle.getString("NAME"); 
    textView= (TextView) view.findViewById(R.id.bioname); 
    textView.setText(name); 
    imageView= (ImageView) view.findViewById(R.id.imageView); 
    imageView.setImageResource(getBundle.getInt("IMAGE")); 
    Log.v("test", "images are coming"); 
    button= (Button) view.findViewById(R.id.button_quickfacts); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Fragment fragment = new QuickFacts(); 
      FragmentTransaction fragmentTransaction = 
        getFragmentManager().beginTransaction(); 

      fragmentTransaction.replace(R.id.fragment_quickfacts, fragment); 
      fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 
     } 
    }); 
    return view; 
} 
} 

мой фрагмент Быстрый обзор

public class QuickFacts extends Fragment { 

    TextView detailText; 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
      View view=inflater.inflate(R.layout.fragment_quick_facts, container, false); 
      Bundle getBundle = getActivity().getIntent().getExtras(); 
      String details=getBundle.getString("DETAIL"); 
      detailText= (TextView) container.findViewById(R.id.fragment_add); 
      detailText.setText(details); 

      return view; 
} 


} 

fragment_quick_facts.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/fragment_quickfacts" 
    tools:context="com.example.rahul.famousbiography.fragments.QuickFacts"> 

<!-- TODO: Update blank fragment layout --> 
    <TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="@string/hello_blank_fragment" 
    android:id="@+id/fragment_add" 
    /> 

</FrameLayout> 

мой LogCat

FATAL EXCEPTION: main 
                       Process: com.example.rahul.famousbiography, PID: 11751 
                       java.lang.IllegalArgumentException: No view found for id 0x7f0c007d (com.example.rahul.famousbiography:id/fragment_quickfacts) for fragment QuickFacts{2ff08f2b #1 id=0x7f0c007d} 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1059) 
                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 
                        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
                        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 
                        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) 
                        at android.os.Handler.handleCallback(Handler.java:739) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:135) 
                        at android.app.ActivityThread.main(ActivityThread.java:5254) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698 
+3

где ошибка? –

+0

паста logacat пожалуйста –

+0

да, конечно, вы можете видеть – rahul

ответ

3

Здесь контейнер ваш ViewGroup, Таким образом, контейнер dosen't есть ваш faragment_add, fragment_quick_facts.xml имеет только сейчас и который действует в качестве view в настоящее время. Так измените

detailText= (TextView) container.findViewById(R.id.fragment_add); 

в

detailText= (TextView) view.findViewById(R.id.fragment_add); 

А также смотрите

fragmentTransaction.replace(R.id.fragment_quickfacts, fragment); 

Вы пытаетесь заменить fragment_quickfacts, который находится в вашем fragment_quick_facts.xml не fragment_detail.xml. Так что проверьте его и отправьте fragment_detail.xml.

Если вы не ясны, то, пожалуйста, пройти через Building a Dynamic UI with Fragments

+0

nope it nt work – rahul

+0

Он должен работать, попытаться очистить и повторно построить ваш проект. Или, если вы отправите трассировку стека, возможно, 'details' имеет значение NULL. Проверь это. – Gunaseelan

+0

Я уже заменил, что я попробую снова, как и сказал – rahul

Смежные вопросы