Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试将用户标识从活动发送到viewholder片段_Java_Android - Fatal编程技术网

Java 正在尝试将用户标识从活动发送到viewholder片段

Java 正在尝试将用户标识从活动发送到viewholder片段,java,android,Java,Android,我已经创建了一个android应用程序,在其中我添加了一个名为profileview.java的活动,用户可以在该活动上查看那里或其他用户的个人资料数据。Profileview活动包含两个片段post和LIKE,我必须在其中显示用户发布的帖子和用户喜欢的帖子,但不知道如何将用户ID从Profileview活动发送到其他两个片段 profileviewactivity.class public class profileviewActivity extends AppCompatActivity

我已经创建了一个android应用程序,在其中我添加了一个名为profileview.java的活动,用户可以在该活动上查看那里或其他用户的个人资料数据。Profileview活动包含两个片段post和LIKE,我必须在其中显示用户发布的帖子和用户喜欢的帖子,但不知道如何将用户ID从Profileview活动发送到其他两个片段

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;
}
}
我想把用户ID从ProfileAvieWavity发送到posttimeline之类的片段

  • userid
    作为参数传递给
    settingtabadapter
    constructor

    public settingtabAdopter(@NonNull FragmentManager fm, String userid) 
    
    profileviewActivity->onCreate

    Tabadapter = new settingtabAdopter(getSupportFragmentManager(), userid);
    
  • settingtabadapter

    private String userid;
    
    在构造函数中初始化它

    this.userid = userid
    
  • 在每个片段中创建私有变量,并添加setter(posttimeline等)片段

    private String mUserid;
    void setMUserId(String mUserid){
        this.mUserid = mUserid;
    }
    
  • 初始化每个片段后,在
    settingtabadapter
    内部
    getItem
    函数上,使用
    userid设置私有变量

    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;
        }
    }
    

  • getItem
    上,您具有切换条件,可以使用
    bundle
    fragment
    将数据发送到
    fragment
    ,并可以在
    fragment
    上获取该数据,然后如何将用户ID发送到设置选项卡适配器,以及