title: How to add editText.addTextChangedListener in TableLayout
body: <p>My work environment is Eclipse heliose, Android 1.6</p>
  
  <p>I have created a tableLayout with columns and rows added successfully, each cell has one textView and one EditText and I have a problem in accessing each cell and need to add addTextChangedListener to each editText inside the cell. So that I need to change the english text to indic text. Please suggest a solution</p>
  
  <pre><code>/**
   * Here we are going to define the grid The Grid has 1. grid's value in the
   * particular position 2.
   */
  
  public void setGrid() {
  
      String questionNumber[] = null;
  
      Typeface fontface = Typeface.createFromAsset(getAssets(), "fonts/padmaa.ttf");
      /*
       * Table layout for the crossword elements
       */
      TableLayout tableLayout = (TableLayout) findViewById(R.id.crosswordTableLayout);
      tableLayout.setGravity(Gravity.TOP);
      tableLayout.setBackgroundColor(Color.WHITE);
      tableLayout.setScrollContainer(true);
  
      for (int i = 0; i &lt; sizeOfGrid; i++) {
          /*
           * This table row params is used to set the layout params alone we
           * are not going to use this anywhere
           */
          TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
          tableRowParams.setMargins(1, 1, 1, 1);
          tableRowParams.height = 30;
          tableRowParams.gravity = Gravity.TOP;
  
          /*
           * Defining the row element for the crossword
           */
          TableRow tableRow = new TableRow(this);
          tableRow.setBackgroundColor(Color.WHITE);
          tableRow.setPadding(1, 0, 0, 0);
          tableRow.setGravity(Gravity.TOP);
          tableRow.setLayoutParams(tableRowParams);
  
          for (int j = 0; j &lt; sizeOfGrid; j++) {
  
              /*
               * (1).Here we are defining headerTextView to set the clue
               * numbers. 
               * 2).columnEditText = a edit text view used to get the user
               * i/p data
               */
              TextView headerTextView = new TextView(this);
              columnEditText = new EditText(this);
  
              headerTextView.setGravity(Gravity.TOP);
              headerTextView.setTextSize(10);
              headerTextView.setEnabled(false);
              headerTextView.setHeight(30);
              headerTextView.setWidth(10);
              headerTextView.setTextColor(Color.BLACK);
  
              /* Override the edittext that has been created */
              columnEditText = (EditText) getLayoutInflater().inflate(R.layout.tablexml, null);
              columnEditText.setHeight(30);
              columnEditText.setWidth(25);
              /*
               * LinearLayout to arrange the two text view in a vertical
               * position
               */
              LinearLayout headerLinearLayout = new LinearLayout(tableRow.getContext());
              headerLinearLayout.setOrientation(LinearLayout.VERTICAL);
              headerLinearLayout.addView(headerTextView);
  
              /*
               * LinearLayout to arrange the first Linearlayout and Edit text
               * in a horizontal position
               */
              LinearLayout cellLinearLayout = new LinearLayout(tableRow.getContext());
              cellLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
              cellLinearLayout.addView(headerLinearLayout);
              cellLinearLayout.addView(columnEditText);
              /*
               * Here we are setting the table's vertical border by some
               * workaround methods
               */
              cellLinearLayout.setLayoutParams(tableRowParams);
              /*
               * the column with complete black
               */
              if (cellValueArr[i][j] == null) {
                  columnEditText.setBackgroundColor(Color.BLACK);
                  headerTextView.setBackgroundColor(Color.BLACK);
                  headerTextView.setGravity(Gravity.TOP);
                  tableRow.setBackgroundColor(Color.BLACK);
                  columnEditText.setEnabled(false);
              } else {
                  /*
                   * column with values and question numbers
                   */
                  tableRow.setBackgroundColor(Color.BLACK);
                  if (quesNumArr[i][j] == null) {
                      columnEditText.setBackgroundColor(Color.WHITE);
                      headerTextView.setBackgroundColor(Color.WHITE);
                  } else if (quesNumArr[i][j] != null) {
                      /*
                       * column without question number
                       */
                      questionNumber = quesNumArr[i][j].split("~");
                      quesArrList.add(questionNumber[1]);
                      headerTextView.setText(questionNumber[1]);
                      headerTextView.setTextColor(Color.BLACK);
                      headerTextView.setBackgroundColor(Color.WHITE);
                      columnEditText.setBackgroundColor(Color.WHITE);
                  }
  
              }
              columnEditText.setId(i);
              headerTextView.setId(i);
  
              /* add the linear layout to the row values */
              tableRow.addView(cellLinearLayout);
  
              int childCount = tableRow.getChildCount();
              System.out.println("Child Count ::" + childCount);
  
              LinearLayout linearChild = (LinearLayout) tableRow.getChildAt(columnEditText.getId());
              colText = (EditText) linearChild.getChildAt(1);
              System.out.println("GET ID " + linearChild.getChildAt(1).getId());
  
              colText.addTextChangedListener(new TextWatcher() {
                  @Override
                  public void onTextChanged(CharSequence seq, int start, int before, int count) {
                      // TODO Auto-generated method stub
                      if (seq.length() &gt; 0 &amp; before == 0) {
                          final String charSequence = String.valueOf(seq);
                          final String engChar = String.valueOf(seq.charAt(seq.length() - 1));
                          println("GUJ :: currentlatin ===&gt; " + engChar + " :: charSequence ==&gt;" + seq);
                          // Method For Type Char
                          List softList = conv.getSoftKeyPressForChar(engChar, getApplicationContext(), seq);
                          charSeq = (String) softList.get(0);
                          Typeface fontface1 = Typeface.createFromAsset(getApplicationContext().getAssets(), "fonts/padmaa.ttf");
                          colText.setTypeface(fontface1, Typeface.NORMAL);
                          colText.setText(charSeq);
                          // for placing the cursor position
                          colText.clearFocus();
                          colText.requestFocus();
  
                      }
                  }
  
                  @Override
                  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                      // TODO Auto-generated method stub
  
                  }
  
                  @Override
                  public void afterTextChanged(Editable s) {
                      // TODO Auto-generated method stub
                      System.out.println("AFTER TEXT CHANGE");
                  }
              });
  
          }
          /* add the row values to the table layout */
          tableLayout.addView(tableRow);
      }
  }
  </code></pre>