Ich versuche, die Daten zu meinem Adapter weitergegeben zu aktualisieren und somit Fragmente, deren Inhalt abhängig von diesen Daten zu aktualisieren,Kann nicht FragmentPagerAdapter machen Fragmente Inhalte zu aktualisieren
hier ist die Adpater:
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
public class ScheduleFragment_Pager_adapter extends FragmentPagerAdapter {
private String CurrentSelectedYearID="",CurrentSelectedTermID="";
public ScheduleFragment_Pager_adapter(FragmentManager fm , String SelectedYearID , String SelectedTermID) {
super(fm);
CurrentSelectedYearID = SelectedYearID;
CurrentSelectedTermID = SelectedTermID;
}
@Override
public Fragment getItem(int position) {
Bundle bundle = new Bundle();
bundle.putString("CurrentSelectedYearID", CurrentSelectedYearID);
bundle.putString("CurrentSelectedTermID",CurrentSelectedTermID);
if(position==0)
{
ClassesFragment classesFragment = new ClassesFragment();
classesFragment.setArguments(bundle);
return classesFragment;
}
else if(position==1)
{
ExamsFragment examsFragment = new ExamsFragment();
examsFragment.setArguments(bundle);
return examsFragment;
}
return null;
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Classes";
case 1:
return "Exams";
}
return null;
}
}
Ich habe versucht, diese answer zu verwenden, aber es hat nicht funktioniert, oder ich konnte es nicht verstehen!
und hier, wie ich den Adapter verwende und wie ich versuche, es zu aktualisieren.
bei onCreateView
ein Haupt Fragmente [I mit verschachteltem Fragmente arbeitete]
mViewPager.setAdapter(new ScheduleFragment_Pager_adapter(getChildFragmentManager(), mSelectedYearID, mSelectedTermID));
und ich aktualisieren Sie die Adapter wie diese
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 0){
if(resultCode == Activity.RESULT_OK){
mSelectedTermID = data.getStringExtra("mSelectedTermID");
mSelectedYearID = data.getStringExtra("mSelectedYearID");
mViewPager.getAdapter().notifyDataSetChanged();
}
}
}
Wo die onActivityResult
ist, wo mSelectedTermID
und mSelectedYearID
werden aktualisiert.
Hilfe?
Wie übergeben Sie mSelectedTermID und mSelectedYearID an Ihren Adapter? Ich sehe, Sie übergeben sie an den Konstruktor, aber später Adapter zu aktualisieren, wie liefern Sie sie? –
@temna_nich, 'mSelectedTermID',' mselectedYearID 'sind globale Variablen, bevor ich' setAdapter' bei 'onCreateView' aufruft. Ich gebe ihnen Werte, das macht den Adapter gut, dann könnten diese Werte bei' onActivityResult' geändert werden Überhole sie nicht wieder - sollte ich sie noch einmal weitergeben? ,,, Was verlangst du? –
Fügen Sie eine Protokollnachricht oder einen Haltepunkt hinzu und überprüfen Sie 'mViewPager.getAdapter(). NotifyDataSetChanged();' wurde aufgerufen. –