Как скрыть / показать представление в разделе «Действия», нажав кнопку в Android Cardview? - PullRequest
0 голосов
/ 03 мая 2019

Я работаю над коммерческим приложением в качестве стажировки.В одном из своих занятий у меня есть вид вкладки с двумя фрагментами.В каждом фрагменте я использую представление карты для хранения представлений. В представлении карты есть одно представление изображения, два представления текста и кнопка, а в нижней части действия под представлением вкладки естьэто кнопка, которая имеет свой режим видимости как "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 голосов
/ 30 мая 2019

Вы должны добавить код MenuActivity.java внутри public void onBindViewHolder (держатель ViewHolder, конечная позиция int) {} также метод.

...