在另一个活动的spinner中获取recyclerview项目

问题描述 投票:0回答:2

我使用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。

android-studio
2个回答
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);

0
投票

如果我遇到问题,您希望在两个活动中访问List。如果是这样,那么你有几种方法

1:存储到本地数据库或SharedPreferences

2:使用static变量(简单方法)

当您从改装响应中获得类别列表时,将其存储到静态列表,如下所示

public static List<Category> cats;

然后在OnResponse()

cats = response.body().getCats();

现在您可以在其他活动中访问猫。

© www.soinside.com 2019 - 2024. All rights reserved.