我知道我不是第一个提出这个问题的人,但是不幸的是,我找不到这个问题的根源。我正在尝试将选定的适配器位置传递给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");
我知道这没什么大不了的,但是我解决不了。 谁能告诉我是我做错了。
答案 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()
,则需要使用int
或getIntent().getIntExtra(...)
。