我在导航抽屉中有一个recylcerview,我希望在另一个活动中找到用户在recyclerview中点击的位置。我编写代码的方式目前总是返回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;
}
我的活动代码,我希望找到点击的位置:
@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;
}
再次感谢!
答案 0 :(得分:1)
您需要在捆绑中传递数据并将其添加到新活动的意图中。
// onClick at recycler
Intent intent = new Intent();
intent.setClass(context, Other_Activity.class);
intent.putExtra("SOME_ID", position);
startActivity(intent);
//第二项活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null) {
int position = extras.getInt("SOME_ID");
}
答案 1 :(得分:1)
如果我理解正确,您希望将位置传递给活动,即您正在开始。然后你可以将position的值传递给intent:
Intent i = new Intent(getActivity(), Test.class);
i.putExtra("position", position);
startActivity(i);
然后在Test活动中检索值:
@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);
}