【发布时间】:2017-05-19 09:02:00
【问题描述】:
我将数据从我的 RecyclerView 适配器传递到我的 MainActiviy。我还使用适配器中的接口来捕获 MainActivity 的 onItemClick() 中的 CardView 项目位置,并使用意图将该位置传递给新的 Activity (CardViewDetails)。问题是 CardViewDetails 加载了错误的 CardView。如何使用 CardView“位置”来启动正确的 CardView?我在这里错过了什么?
MainActivity
...
public void passDataFromAdapter(Bundle bundle) {
data = bundle.getString("spantimeinhours");
data2 = bundle.getLong("timeinhours");
}
// This method works with an interface in the Adapter to capture the
// CardView item position.
@Override
public void onItemClick(int position, final View view) {
Intent intent = new Intent(this,Details.class);
intent.putExtra("adapterSpanTimeInHours",data);
intent.putExtra("adapterTimeInHours",data2);
startActivity(intent);
}
Details
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
Bundle extras = getIntent().getExtras();
msgFromAdapter = extras.getString("adapterSpanTimeInHours");
msg2FromAdapter = extras.getLong("adapterTimeInHours", 0);
}
Adapter
public class MyRecylerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private void passDataFromAdapter(Bundle bundle) {
if (context == null)
return;
if (context instanceof MainActivity) {
MainActivity activity = (MainActivity) context;
activity.passDataFromAdapter(bundle); // this method must be implemented inside `MainActivity`
}
}
}
【问题讨论】:
-
我认为您必须发布您的适配器代码以及它与主要活动的关系。
-
请在此处发布您的适配器代码
-
ok 将在上面添加。
-
请发布您的整个适配器代码。
-
上面添加了完整的适配器代码。
标签: android android-intent android-recyclerview