Hi everyone i am using custom listview for getting data from server and show in listview.. I am able to get data and show it in listview but i dont know to implement the cli
Finally i solved my answer my self. Just need to implement interface and call in fragment class..
Updated Adapter class
public class FeedListAdapter extends RecyclerView.Adapter {
private Activity activity;
private LayoutInflater inflater;
private List feedItems;
private List filteredfeedItems;
ImageView plus;
ImageView minus;
String result;
String formattedDate;
int id;
private View.OnClickListener onAddNum;
private View.OnClickListener onSubNum;
public FeedListAdapter(Activity activity, List feedItems)
{ this.activity = activity;
this.feedItems = feedItems;
this.filteredfeedItems = feedItems;
inflater = ( LayoutInflater )activity.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
// create interface method
public void setOnAddNum(View.OnClickListener onAddNum){
this.onAddNum = onAddNum;
}
public void setOnSubNum(View.OnClickListener onSubNum){
this.onSubNum = onSubNum;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.feed_item, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
FeedItem item =(FeedItem)filteredfeedItems.get(position);
holder.date.setText(item.getObservation());
holder.initiator
.setText(item.getObservation());
holder.location.setText(String.valueOf(item.getNum())+"");
holder.assignTo.setText(item.getSummary());
// set tag to know which button you clicked'
holder.plus.setTag(position);
holder.plus.setFocusable(true);
holder.plus.setClickable(true);
// set callback interface ,
holder.plus.setOnClickListener(onAddNum);
holder.minus.setTag(position);
holder.minus.setOnClickListener(onSubNum);
}
@Override
public int getItemCount() {
return filteredfeedItems.size();
}
public long getItemId(int position) {
return position;
}
class ViewHolder extends RecyclerView.ViewHolder{
ImageView plus;
ImageView minus;
TextView date;
TextView initiator;
TextView assignTo;
TextView location;
public ViewHolder(View vi) {
super(vi);
date = (TextView) vi.findViewById(R.id.name);
initiator = (TextView) vi
.findViewById(R.id.timestamp4);
assignTo = (TextView) vi.findViewById(R.id.timestamp);
location = (TextView) vi.findViewById(R.id.timestamp2);
plus = (ImageView) vi.findViewById(R.id.btnAddToCart1);
minus = (ImageView) vi.findViewById(R.id.btnAddToCart5);
}
}
}
now in activity class implement View.OnClickListener for button events.
public class MyFragment extends Fragment implements View.OnClickListener
@Override
public void onClick(View view) {
Object tag = view.getTag();
switch (view.getId()){
case R.id.item_btn_add: // click add buttons number , performs corresponding processing
if (tag != null && tag instanceof Integer) {
int position = (Integer) tag;
Your pojo class
int num =feedItems.get(position).getNum();
num++;
feedItems.get(position).setNum(num);
adapter.notifyDataSetChanged();
}
break;
case R.id.btnAddToCart5:
if (tag != null && tag instanceof Integer) {
int position = (Integer) tag;
int num =feedItems.get(position).getNum();
if (num>0) {
num--;
feedItems.get(position).setNum(num);
listAdapter.notifyDataSetChanged();
}
else{
num= 0;
listAdapter.notifyDataSetChanged();
}
}
break;
}
Enjoy coding