【发布时间】:2017-03-16 11:21:32
【问题描述】:
很抱歉问了重复的问题,但在检查了其他问题后,我使用了他们的答案他们在我的代码中不起作用我是 android 新手
这是我要传递数据的类
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {
private int[] mdataset;
private String[] mplanet;
Context c;
public MainAdapter(Context context ,int[] dataset , String[] planet){
this.c = context;
this.mplanet = planet;
this.mdataset = dataset;
}
@Override
public void onBindViewHolder(MainAdapter.ViewHolder holder, final int position ) {
holder.image.setImageResource(mdataset[position]);
holder.textView.setText(mplanet[position]);
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// here is my i want to pass the data position to another fragment**
Bundle bundle = new Bundle();
bundle.putInt("position", position);
bottomActivity fragment = new bottomActivity();
fragment.setArguments(bundle);
}
});
}
@Override
public int getItemCount() {
return mdataset.length;
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView textView;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.imageView);
textView = (TextView)itemView.findViewById(R.id.textView);
}
}
@Override
public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.single_row, null);
ViewHolder vh = new ViewHolder(v);
return vh;
}
}
这是我的Fragment 类,我想在哪里接收数据
public class bottomActivity extends Fragment
{
TextView textView;
int pos;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_bottom, container, false);
textView = (TextView)view.findViewById(R.id.title_textView);
textView.setText(pos+"");
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// here is that code where the data should received
Bundle bundle = bottomActivity.this.getArguments();
if (bundle != null)
{
pos = bundle.getInt("position", 2);
}
}
}
【问题讨论】:
-
你没有在onclick中添加或替换fragment,你只是将bundle绑定到fragment
-
你能详细解释一下吗,我不太了解
-
告诉我该怎么做
标签: java android android-fragments android-intent