Ich möchte das Fragment ändern, wenn ich auf die Schaltfläche klicke. Die Fragmente befinden sich im selben Adapter/Viewpager.android onClick Änderung Fragment
VON DIESEM FRAGMENTE:
public class LoginFragment extends Fragment {
TextView linkToRegister;
public static final LoginFragment newInstance()
{
LoginFragment mf = new LoginFragment();
Bundle bd = new Bundle(1);
mf.setArguments(bd);
return mf;
}
public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragment_login, container, false);
linkToRegister = (TextView) v.findViewById(R.id.link_to_register);
linkToRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Change Fragment
}
});
return v;
}
}
an diesem Fragment:
public class RegisterFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final RegisterFragment newInstance()
{
RegisterFragment mf = new RegisterFragment();
Bundle bd = new Bundle(1);
mf.setArguments(bd);
return mf;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragment_register, container, false);
return v;
}
}
PagerAdapter:
public class WelcomePagerAdapter extends FragmentStatePagerAdapter {
private final List<Fragment> Welcomefragments;
public WelcomePagerAdapter(FragmentManager fm, List<Fragment> Welcomefragments) {
super(fm);
this.Welcomefragments = Welcomefragments;
}
@Override
public Fragment getItem(int position) {
return this.Welcomefragments.get(position);
}
@Override
public int getCount() {
return this.Welcomefragments.size();
}
}
Aktivität:
public class WelcomeActivity extends AppCompatActivity {
ViewPager welcomeViewPager;
WelcomePagerAdapter welcomePagerAdapter;
List<Fragment> welcomeFragments;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
welcomeViewPager = (ViewPager) findViewById(R.id.viewPagerWelcome);
welcomeFragments = getWelcomeFragments();
welcomePagerAdapter = new WelcomePagerAdapter(getSupportFragmentManager(), welcomeFragments);
welcomeViewPager.setAdapter(welcomePagerAdapter);
}
public List<Fragment> getWelcomeFragments() {
List<Fragment> newFragment = new ArrayList<Fragment>();
newFragment.add(LoginFragment.newInstance());
newFragment.add(RegisterFragment.newInstance());
return newFragment;
}
}
Sie ausführen möchten Sie müssen einen Aktivitätsrückruf vom Fragment verwenden, um die Seite des Adapters zu ändern. In diesem Tutorial erfahren Sie, wie das geht. https://developer.android.com/training/basics/fragments/communicating.html –
Hallo, danke für deine Antwort. verstehe immer noch nicht, wie man das macht, kannst du mir das erklären? –
Ein Fragment definiert eine Schnittstelle, dann implementiert Activity diese Schnittstelle und die entsprechenden Methoden. Das Fragment ist an diese Aktivität/Schnittstelle angehängt und kann seine Methoden aufrufen. –