2

Ich arbeite auf ViewPager mit Fragment und es funktionierte alles perfekt, bevor ich beginne, Laufzeitberechtigungen für verschiedene Module zu implementieren.Fragment wird leer nach der Frage nach Laufzeitberechtigung

Hier ist mein ViewPager Adapter.

Hier benötigten verschiedene Fragmente unterschiedliche Berechtigungen, also habe ich eine gemeinsame Aktivitätsklasse dafür gemacht. Es funktioniert im selben Fragment, aber nachdem ich um Erlaubnis gefragt habe, wenn ich den viewPager wische, wird das Fragment nach dem nächsten Fragment und ein Fragment vor dem vorherigen Fragment leer. Ich habe alle mögliche Änderung im Adapter gemacht, aber kein richtiges Ergebnis erhalten.

Bitte kann jemand helfen damit!

+0

Bitte Vergangenheit die Code, wo Sie die Erlaubnis gegeben haben. – Mukesh

+0

Und ein beliebiger Fragmentcode. – NovusMobile

+0

In den folgenden Kommentaren habe ich den Code erwähnt. Bitte schauen Sie hinein. Vielen Dank. – Neo

Antwort

0
@Override 
public int getCount() { 
return 2; 
} 

// versuchen, dies kann es

+0

Ich brauche 3 Fragmente. deshalb lege ich einen getCount() - returns 3; – Neo

0
package com.example.madhavgor.actionbardemolast; 

import android.os.Bundle; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 

import java.util.ArrayList; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 
private Toolbar toolbar; 
private TabLayout tabLayout; 
private ViewPager viewPager; 
private int[] tabIcons = { 
     R.mipmap.ic_launcher,R.mipmap.ic_launcher_bluetooth 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //toolbar = (Toolbar) findViewById(R.id.toolbar); 
    //setSupportActionBar(toolbar); 

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    viewPager = (ViewPager) findViewById(R.id.viewPager); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    setupTabIcons(); 
} 

private void setupTabIcons() { 
    tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
    tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
} 

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new OneFragment(), "ONE"); 
    adapter.addFragment(new SecondFragment(), "BLUETOOTH"); 
    adapter.addFragment(new ThirdFragment(), "THREE"); 
    viewPager.setAdapter(adapter); 
} 

class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 

arbeiten werden}

// diesen Code verweisen .... kann es Ihnen helfen ..

+0

Dank Madhav, aber nach adpter denke ich, es ist ein bisschen wie Ihr, wie ich FragmentStatePagerAdapter stattdessen verwendet habe. – Neo