Как выполнить некоторые действия при нажатии на разные подпункты списка - PullRequest
0 голосов
/ 05 июня 2018

Это мое изображение ItemPriceActivity:

Здесь я использовал URL другого API, который размещен, так как мне легко использовать этот URL, потому что мне часто не нужноизменить адрес, чтобы я использовал тот.Так что не берите в голову названия больниц, представленных там.

Это мой класс Адаптера

Здесь все, что я хочу сделать, - это когда я нажимаю на подпункты списка, то есть на иконку корзины, я хочу анимацию, которая дрожит для текстового обзора, который представлен чуть выше плавающей кнопки, и, как при нажатии на различные значки корзины, число также должно увеличиваться, а такжедолжно уменьшиться, пока оно не проверено.Пожалуйста, предложите мне, как я могу выполнить такие действия, и заранее благодарю.

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (convertView == null)
        convertView = inflater.inflate(R.layout.item_layout, null);
        convertView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ItemPricePojo userInfo = datalist.get(position);
            mlistener.onItemClick(userInfo);
        }
    });
     final TextView totalcart = convertView.findViewById(R.id.totalcartitems);
    final Animation animShake = AnimationUtils.loadAnimation(activity, R.anim.shake);
    final CheckBox checkBox = convertView.findViewById(R.id.addtocart);
    checkBox.setTag(new Integer(position));
    checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            totalcart.startAnimation(animShake);

            if(checkBox.isChecked()){
                count++;
                totalcart.setText(Integer.toString(count));
            }
            else {
                count--;
                totalcart.setText(Integer.toString(count));

            }

        }
    });

    TextView price = convertView.findViewById(R.id.price);
    TextView name = convertView.findViewById(R.id.text1);

    ItemPricePojo m = datalist.get(position);

    price.setText(String.valueOf(m.getPrice()));
    name.setText(String.valueOf(m.getName()));

    return convertView;
   }
}

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Я рекомендую вам перейти к просмотру переработчика, так как при этом более эффективно обрабатывается клик и проверяется эта статья

0 голосов
/ 15 июня 2018

Наконец, после некоторых великих исследований, я нашел свой ответ.Все, что мне нужно сделать, это изменить текстовое представление на статическое в моем классе активности, которое не распознается моим классом адаптера.Я изменяю:

public static textview totalcart = findViewById ();

в моем классе деятельности.Поскольку класс адаптера donot позволяет использовать findViewById ();поэтому мы должны использовать его как статический в классе деятельности.Теперь мне нужно определить класс активности, из которого я хочу, чтобы текстовое представление идентифицировалось по классу адаптера:

ItemPriceActivity itemsPriceActivity = new ItemPriceActivity ();

Затем, используя анимацию, я сделал это:

final Animation animShake = AnimationUtils.loadAnimation (mcontext, R.anim.shake);itemsPriceActivity.totalcart.startAnimation (animShake);

Теперь все работает так, как я хочу.

0 голосов
/ 05 июня 2018

Вы устанавливаете прослушиватель onClick для своих флажков.Вместо этого вы должны использовать setOnCheckedChangeListener, который сообщит вам, был ли установлен флажок или нет.

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        }
    });
...