Tratando de enviar el ID de usuario de la actividad al fragmento viewholder

NANB:

He creado una aplicación para Android en la que he añadido una actividad llamada profileview.java en el que los usuarios pueden ver allí o datos del perfil de otros usuarios. actividad Profileview contiene dos fragmentos poste y le gusta en el que tengo que mostrar el mensaje que se ha publicado por el usuario y el puesto deseado por el usuario, pero no obtener alguna idea de cómo enviar el ID de usuario de la actividad profileview a los otros dos fragmentos.

profileviewactivity.class

 public class profileviewActivity extends AppCompatActivity {
  public String userid;
  private ViewPager viewPager;
  private TabLayout tabLayout;
  private settingtabAdopter Tabadapter;
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profileview);

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    Tabadapter = new settingtabAdopter(getSupportFragmentManager());
    viewPager.setAdapter(Tabadapter);

    tabLayout = (TabLayout) findViewById(R.id.tablayout);
    tabLayout.setupWithViewPager(viewPager);

    userid = getIntent().getExtras().get("userid").toString();
  }
}

settingadapter.java

public class settingtabAdopter extends FragmentPagerAdapter {
public settingtabAdopter(@NonNull FragmentManager fm) {
    super(fm);
}

@NonNull
@Override
public Fragment getItem(int position) {
    switch (position){
        case 0:
            posttimeline postfragment = new posttimeline();
            return postfragment;
        case 1:
            like chatfragment = new like();
            return chatfragment;
        default:
            return null;
    }
}

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

@Nullable
@Override
public CharSequence getPageTitle(int i) {
    switch (i){
        case 0:
            return "Posts";
        case 1:
            return "Likes";
        default:
            return null;
    }
}
}

posttimeline.java

  public class posttimeline extends Fragment {
  View posttimelineview;
   public posttimeline() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
   posttimelineview =  inflater.inflate(R.layout.fragment_posttimeline, container, false);
   return posttimelineview;
  }
}

like.java

 public class like extends Fragment {
 View Likeview;
  public like() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    Likeview = inflater.inflate(R.layout.fragment_like, container, false);
 return Likeview;
}
}

quiero enviar ID de usuario de la profileaviewactivity a la posttimeline y al igual que los fragmentos.

Adham Gamal:
  1. pasar useridcomo parámetro al settingtabAdopterconstructor

    public settingtabAdopter(@NonNull FragmentManager fm, String userid) 
    

    profileviewActivity -> onCreate

    Tabadapter = new settingtabAdopter(getSupportFragmentManager(), userid);
    
  2. hacer variable dentro privada settingtabAdopter

    private String userid;
    

    inicializar dentro del constructor

    this.userid = userid
    
  3. Crear variable privada en cada fragmento y setter para sumar (posttimeline y similares) fragmentos

    private String mUserid;
    void setMUserId(String mUserid){
        this.mUserid = mUserid;
    }
    
  4. En settingtabAdopterel interior de getItemla función después de inicializar cada fragmento de establecer el varaible privada con eluserid

    public Fragment getItem(int position) {
        switch (position){
            case 0:
                posttimeline postfragment = new posttimeline();
                postfragment.setMUserId(userid)
                return postfragment;
            case 1:
                like chatfragment = new like();
                chatfragment.setMUserId(userid)
                return chatfragment;
            default:
                return null;
        }
    }
    

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=284127&siteId=1
Recomendado
Clasificación