2016-05-23 30 views
0

Dies ist der Code II durch Googeln und Lesen eines anderen Stack-Overflow-Antworten implementiert. aber jede Antwort funktioniert nicht für mich.Navigieren von einem Fragment zu einem anderen Fragment auf Knopfdruck

Code Nach diesem Fehler - „Kein Blick für id gefunden 0x7f09009e

mir bitte helfen, diesen

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

//////more code here ////// 

OnClickListener listner = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Fragment fragment=null; 
       if(v==rootView.findViewById(R.id.Button)){ 
        fragment = new SortListFragment(); 
       } 
       FragmentManager manager =getFragmentManager(); 
       FragmentTransaction transaction = manager.beginTransaction(); 
       transaction.replace(R.id.fragment_sort, fragment); 
       transaction.commit(); 


      } 
     }; 

     ImageButton btn = (ImageButton)rootView.findViewById(R.id.button); 
     btn.setOnClickListener(listner); 

     return rootView; 
    } 
+0

funktionierten nicht Sie versuchen, um das onClick-Ereignis und das Einfügen des neuen Fragments in Ihre Aktivitätsklasse über eine Schnittstelle zu behandeln? –

+0

Bitte Layoutdatei angeben. Es scheint, dass die ID SortButton oder Schaltfläche nicht existiert – sonique

+0

zuerst das Layout aufblasen. und verwenden Sie die aufgeblähte Ansicht, um die Layout-Ansichten zu finden. (Wie imagebutton) – Sackurise

Antwort

0

diese Linie zu implementieren hinzufügen oben auf Klick listner:

rootview = inflater.inflate(R.layout.<your layout xml>, container, 
        false); 
+0

Ich habe diesen Code in meinem Code – tenten

+0

Entfernen Sie diese Zeile super.onCreateView (inflater, container, savedInstanceState); und check – AbhayBohra

1
ButtonOnClickInterface interface; 
public void onCreateView(//parameters){ 
    View view=//inflate the view; 
    Button button =(Button)view.findViewById(R.id.buttonId); 
    button.setOnClickListener(new View.OnclickListener{ 
     @Override 
     public void onClick(View v){ 
      try{ 
       interface.onClick(); 
      }catch(Throwable e){ 
       //may be null 
      } 
     } 
    }); 
} 

@Override 
public void onAttach(Context c){ 
    super.onAttach(c); 
    try{ 
     interface=(ButtonOnClickInterface)c; 
    }catch(Throwable e){ 
     //not implemented 
    } 
} 

Und Ihre Schnittstelle

interface ButtonOnClickInteface{ 
    void onClick(); 
} 

Implementieren Sie diese Schnittstelle in Ihrer Aktivität.

+0

was ist 'myActivity' hier – tenten

+0

Sorry mein Schlechter. Aktualisiert den Anwser. –

+0

Danke, einem anderen Sri Lanka zu helfen. Aber Code ist keine Sache :( – tenten

0

Ich glaube, Sie haben vergessen, Layout-Datei, in der Sie Tasten und alle haben.

unterhalb der Linie So geben Sie bitte in Ihrem Code nach "super.OnCreateView()"

rootView = inflater.inflate(R.layout.your_layout_file, container, false); 

Und dann überprüfen Sie es funktioniert oder nicht, hoffen, dass diese

+0

Ich habe diese Zeile – tenten

+0

Layout sicherstellen passed ist korrekt und Buttons sind in diesem Layout nur nicht in Aktivität .Überprüfen Sie auch, ob Sie in der Deklaration R.id.button geschrieben haben (bedeutet kleine Schaltfläche) und in Klicklisten vergleichen Sie mit R.id.Button (Capital "B"), überprüfen Sie es auch – Vickyexpert

+0

Wenn dies der Fall ist, würde es eine Nullzeigerausnahme erzeugen. –

Verwandte Themen