如何通过单击Android Cardview中的按钮隐藏/显示活动中的视图?

时间:2019-05-03 09:30:57

标签: android-recyclerview onclicklistener android-cardview android-relativelayout

我正在从事商业应用程序的实习。在其活动之一中,我具有带两个片段的选项卡视图。在每个片段中,我都使用卡片视图保存视图。 卡片视图具有一个图像视图,两个文本视图和一个按钮,在活动底部的选项卡视图下方,有一个按钮,其可见性模式为“ GONE”

现在我想要的是,每当我单击名片视图中的按钮时,活动底部的按钮都应为相应的单击隐藏/显示。

Cardcaptionadapter.java

   public CaptionedImagesAdapterMenu.ViewHolder onCreateViewHolder(
            ViewGroup parent, int viewType){
        CardView cv = (CardView) LayoutInflater.from(parent.getContext())
                .inflate(R.layout.card_captioned_image_menu, parent, false);
        return new ViewHolder(cv);
    }
    @Override
    public void onBindViewHolder(ViewHolder holder, final int position){
        CardView cardView = holder.cardView;
        ImageView imageView = (ImageView)cardView.findViewById(R.id.info_image);
        Drawable drawable = ContextCompat.getDrawable(cardView.getContext(), imageIds[position]);
        imageView.setImageDrawable(drawable);
        imageView.setContentDescription(captions[position]);
        TextView textView = (TextView)cardView.findViewById(R.id.info_text);
        textView.setText(captions[position]);
        TextView textView1 = cardView.findViewById(R.id.info_menu);
        textView1.setText(desc[position]);
        TextView textView2 = cardView.findViewById(R.id.info_price);
        textView2.setText("₹ " + price[position]);
        cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (listener != null) {
                    listener.onClick(position);
                }
            }
        });
        holder.button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(holder.button.getText().equals("ADD")){
                    holder.button.setText("ADDED");
                    holder.button.setBackgroundColor(Color.parseColor("#00ff00"));
                    SharedPreferences sharedPref = context.getSharedPreferences("ADD",0);
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.putInt("ADDED", 1);
                    editor.apply();
                }
                else {
                    holder.button.setText("ADD");
                    holder.button.setBackgroundColor(Color.parseColor("#ffffff"));
                    SharedPreferences sharedPref = context.getSharedPreferences("ADD",0);
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.clear();
                    editor.apply();
                }
            }
        });
    }

MenuActivity.java

 SharedPreferences preferences = getSharedPreferences("ADD",0);
         int addvalue = preferences.getInt("ADDED",0);

         if(addvalue==1){
             orderbutton.setVisibility(View.VISIBLE);
         }
         else{
             orderbutton.setVisibility(View.GONE);
         }
         orderbutton.setOnClickListener(view -> {
             orderbutton.setVisibility(View.GONE);
             paybutton.setVisibility(View.VISIBLE);
         });

1 个答案:

答案 0 :(得分:0)

您还应该在public void onBindViewHolder(ViewHolder持有人,最终int位置){}方法内添加MenuActivity.java代码。