我将Retrofit2用于获取类别列表。我使用模型类和recyclerview适配器获取类别项。它运作良好。 在另一个活动中,我有一个微调器来显示类别项目。 如何在另一个活动中获取类别项目并在微调器中显示? 谢谢。
public class CatAdapter extends RecyclerView.Adapter<CatAdapter.MyViewHolder> {
private Context context;
private List<Category> cats;
public CatAdapter(Context context, List<Category> cats) {
this.context = context;
this.cats = cats;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.cats_list, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.cat_title.setText(cats.get(position).getTitle());
holder.cat_content.setText(cats.get(position).getContent());
holder.cat_qcount.setText(cats.get(position).getQcount());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context , CatPosts.class);
intent.putExtra("catid",cats.get(position).getCatid());
intent.putExtra("cattitle",cats.get(position).getTitle());
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return cats.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
private TextView cat_title,cat_content, cat_qcount;
public MyViewHolder(View itemView) {
super(itemView);
cat_title = itemView.findViewById(R.id.cat_title);
cat_content = itemView.findViewById(R.id.cat_content);
cat_qcount = itemView.findViewById(R.id.cat_qcount);
}
}
}
我不希望有目的的物品,因为当需要放置猫的物品时没有点击动作。
我有一个发送新帖子的活动。在此活动中,有一个微调器将显示猫的项目,用户选择一个类别。
单击项目后,适配器中的意图会将数据发送到CatPosts。我想在显示新的发布活动时获取猫的清单。答案 0 :(得分:0)
您做得不错,现在在另一个活动中,在onCreate()方法上,执行以下操作:
Intent intent = getIntent();
catId = intent.getStringExtra("catid");
catTitle = intent.getStringExtra("cattitle");
String[] x = new String[]{catId,catTitle};
ArrayAdapter<String> adapterX = new ArrayAdapter<>(this, android.R.layout.your_spinner_in_xml, x);
spinner.setAdapter(adapterX);
答案 1 :(得分:0)
如果我有疑问,您想在两个活动中访问列表。 如果是这样,那么您有几种方法
1 :存储到本地数据库或SharedPreferences
2 :使用static
变量(简便方法)
从改造响应中获取类别列表时,将其存储到如下所示的静态列表中
public static List<Category> cats;
然后在OnResponse()
cats = response.body().getCats();
现在,您可以在其他活动中访问猫。