将数据从RecyclerView适配器传递到活动将返回null

时间:2018-06-19 15:39:35

标签: android

我知道我不是第一个提出这个问题的人,但是不幸的是,我找不到这个问题的根源。我正在尝试将选定的适配器位置传递给onclick函数的新活动,但是以我为例,当我收到活动中的数据时始终显示为空。

我尝试了许多方法,还尝试了Stackoverflow解决方案来解决更简单的问题。

RecyclerViewAdapter.java

itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int position = getAdapterPosition();
                    if (position != RecyclerView.NO_POSITION) {
                        myAlarms myAlarms = myAlarmsdata.get(position);
                        Intent intent = new Intent(context, CreateAlarm.class);
                        intent.putExtra("mSelectedId",myAlarms.getALARM_ID());
                        mContext.startActivity(intent);
                        Toast.makeText(v.getContext(), "You clicked " +position, Toast.LENGTH_SHORT).show();
                    }
                }
            });

CreateAlarm.class

Bundle extra = getIntent().getExtras();
        String id = extra.getString("mSelectedId");

我知道这没什么大不了的,但是我解决不了。 谁能告诉我是我做错了。

1 个答案:

答案 0 :(得分:0)

如果<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet"> <a class="demo-start btn btn-dark m-5" href="#" role="button"> <i class="fas fa-play text-light mr-1"> </i> Start the Demo</a> <br> <i class="favorite fas fa-star m-5 text-secondary"></i> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>实际上是myAlarms.getALARM_ID(),则需要使用intgetIntent().getIntExtra(...)