Return recyclerview 中点击的位置不同Activity?

Return the position clicked in recyclerview in a different Activity?

我在导航抽屉中有一个 recyclerview,我希望在不同的 activity 中找到用户在 recyclerview 中单击的位置。我写代码的方式目前总是return 0作为位置。谁能帮我吗。提前致谢!

导航抽屉代码中的 Recyclerview:

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         final Bundle savedInstanceState) {
    // Inflate the layout for this fragment
        View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
    recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
    adapter = new NavigationDrawerFragmentAdapter(getActivity(), getData());
    recyclerView.setAdapter(adapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView,new RecyclerViewClickListener() {
        @Override
        public void onClick(View view, int position) {
            if (position == 0){

            }
            if (position == 27){

            }
            if (position == 28){

            }
            if (position == 29){

            }
            if (position ==30){

            }
            else{
            test.getPositionClicked(position);
            Intent i = new Intent(getActivity(), Test.class);
            startActivity(i);
            }
        }
        @Override
        public void onLongClick(View view, int position) {
        }
    }));
    return layout;
}

还有我的 Activity 代码,我希望找到点击的位置:

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    Toast.makeText(Test.this, "Toast is working " + pos, Toast.LENGTH_SHORT).show();

    if (pos == 1){
        Toast.makeText(Test.this, "Accounting", Toast.LENGTH_SHORT).show();
    }
}

public void getPositionClicked(int position) {
    position = pos;
}

再次感谢!

您需要在一个包中传递数据并将其添加到新 activity 的意图中。

// 在回收站点击 onClick

Intent intent = new Intent();
intent.setClass(context, Other_Activity.class);
intent.putExtra("SOME_ID", position);
startActivity(intent);

//第二个activity

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   Bundle extras = getIntent().getExtras();
   if (extras != null) {
    int position = extras.getInt("SOME_ID");
}

如果我对你的理解正确,你想将位置传递给你正在启动的 activity。然后就可以把position的值传给intent了:

Intent i = new Intent(getActivity(), Test.class);
i.putExtra("position", position);
startActivity(i);

然后在您的测试 activity 中检索值:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    Bundle extras = getIntent().getExtras();
    if(extras != null) position = extras.getInt("position", 0);
}