我使用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);
}
}
}
我不希望获得有意图的项目,因为当需要cat项目时没有点击操作。
我有一个发送新帖子的活动。在此活动中有一个微调器将显示cat项目和用户选择一个类别。
适配器中的意图在单击项目时将数据发送到CatPosts。我希望在显示新的Post活动时获取cat list。
你在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);
如果我遇到问题,您希望在两个活动中访问List。如果是这样,那么你有几种方法
1:存储到本地数据库或SharedPreferences
2:使用static
变量(简单方法)
当您从改装响应中获得类别列表时,将其存储到静态列表,如下所示
public static List<Category> cats;
然后在OnResponse()
cats = response.body().getCats();
现在您可以在其他活动中访问猫。