在另一个活动中获得旋转器中的Recylcer查看物品

时间:2018-09-03 09:06:57

标签: android-studio

我将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。我想在显示新的发布活动时获取猫的清单。

2 个答案:

答案 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();

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