evrencoskun/TableViewSampleApp

Get the cell value on ITableViewListener

alasari opened this issue · 3 comments

how to get value from cell when clicked..?

Hi @alasari ,

There are several ways to get data on ITableViewListener

  1. Get data from ViewHolder
@Override
    public void onCellClicked(@NonNull RecyclerView.ViewHolder cellView, int column, int
            row) {
                     if(cellView instanceof CellViewHolder){
                         String strData = ((CellViewHolder)cellView).cell_textview.getText();
            }
    }

or if you set cell data for each view holder which I don't recommend it because of the memory issue, you can also get cell model like this;

public class CellViewHolder extends AbstractViewHolder {
    public final TextView cell_textview;
    public final LinearLayout cell_container;
    public CellModel mCellModel;

    public CellViewHolder(View itemView) {
        super(itemView);
        cell_textview = itemView.findViewById(R.id.cell_data);
        cell_container = itemView.findViewById(R.id.cell_container);
    }

    public void setCellModel(CellModel cellModel, int column) {
          mCellModel = cellModel

      ...
    }
}

and at your ITableViewListener

@Override
    public void onCellClicked(@NonNull RecyclerView.ViewHolder cellView, int column, int
            row) {
                     if(cellView instanceof CellViewHolder){
                         CellModel cellModel = ((CellViewHolder)cellView).mCellModel;
            }
    }
  1. Get the cell model data from TableViewAdapter (Recommended)
@Override
    public void onCellClicked(@NonNull RecyclerView.ViewHolder cellView, int column, int
            row) {
                   // Get cell model from adapter
                    MyCellModel model = myTableViewAdapter.getCellItem(column, row);
            }
    }

hi @evrencoskun , i will try it, but thanks for your answer

great thanks @evrencoskun , I solved by first option