简体   繁体   中英

How to get value from custom adapter in same fragment

Im new for android. I have one fragment(Menu) and one custom adapter(MenuListCustomAdapter).In that fragment having one listview and one textview. Each list view contain two buttons(add & sub) and textview. My doubt is, I wrote onclicklistener for (add&sub) buttons in custom adapter,While click that buttons i want to change textview in fragment(Menu).

Menu fragment:

adapter = new MenuListCustomAdapter(itemList, this.getActivity(),"http://xyz/images/fish.png");
    menuList.setAdapter(adapter);

CustomAdapter:

 holder.plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int quantity = Integer.parseInt(holder.qty.getText().toString());
                if(list.size()>0){

                        String value = list.get(position).Quantity.toString();
                        Log.d("plus Position on Click", String.valueOf(position));
                        int count = Integer.parseInt(value)+1;
                        list.get(position).Quantity = String.valueOf(count);
                        holder.qty.setText(String.valueOf(count));
                        Log.d("plus value", String.valueOf(count));

                    if(count>0){
                        list.get(position).selFlag = true;

                    }else {
                        list.get(position).selFlag = false;
                    }

                }
            }
        });

Please anyone help me!

You should use interface to process List's click events.

In your adapter

 // Define listener member variable
private static OnItemClickListener listener;
// Define the listener interface
public interface OnItemClickListener {
    void onItemClick(View itemView, int position);
}
// Define the method that allows the parent activity or fragment to define the listener
public void setOnItemClickListener(OnItemClickListener listener) {
    this.listener = listener;
}

In your adapters ViewHolder:

plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (listener != null)
                    listener.onItemClick(v, k);
            }
        });

In your Fragment:

adapter.setOnItemClickListener(new MenuListCustomAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {

              //you can check which view was clicked
               if(view.getId() == R.id.viewID){

                 //do your stuff here
               }
      }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM