Debugging of Edittext Problem

May 29, 2012 | Rishabh Agrawal | General

I want to share one of my problem which I faced while I was working on one of my android application. Problem was related to edittext.That time , I was using many edittext in my application.

Application Functionality:

Whenever value is placed or changed in any edittext at run time, then it should be reflected to it’s corresponding editexts (diagonalwise, rowise, columnwise). This corresponding edit texts represent total sum of edittexts in a row, column and diagonal. I suffered this problem and tried hard to find it’s solution.

Finally, I found solution of this problem, and the solution is addTextChangedListener.

Here, I am giving e.g. of some EditText because rest of them have same issue:

first_EditText_Box.addTextChangedListener(new MyTextWatcher(

                           firstRow_TotalUserNo_EditText,

                           firstColumn_TotalUserNo_EditText,

                           rightDiagonal_TotalUserNo_EditText).setUserVaule(1, 1, 0, 1));

second_EditText_Box.addTextChangedListener(new MyTextWatcher(

                     firstRow_TotalUserNo_EditText,

                     secondColumn_TotalUserNo_EditText).setUserVaule(1, 2, 0, 0));

third_EditText_Box.addTextChangedListener(new MyTextWatcher(

                           firstRow_TotalUserNo_EditText,

                           thirdColumn_TotalUserNo_EditText,

                           leftDiagonal_TotalUserNo_EditText).setUserVaule(1, 3, 1, 0));

//other EditTexts are registered with addTextChangedListener are the same as mentioned //above

private class MyTextWatcher implements TextWatcher {

 

              private EditText editText_Row, editText_Column, editText_Diagonal;

              private int row_No, column_No, leftDiagonal_No, rightDiagonal_No;

              public MyTextWatcher(EditText et_row, EditText et_column) {

                     editText_Row = et_row;

                     editText_Column = et_column;

              }

 

              public MyTextWatcher(EditText et_row, EditText et_column,

                           EditText et_diagonal) {

                     editText_Row = et_row;

                     editText_Column = et_column;

                     editText_Diagonal = et_diagonal;

              }

               @Override

               public void afterTextChanged(Editable s) {

                     // TODO Auto-generated method stub

                     if (row_No == 1 && column_No == 1 && rightDiagonal_No == 1) {

                           changeUserText_ToInt();

                     editText_Row.setText(String.valueOf(firstBox+secondBox                                 

                                         + thirdBox));

                     editText_Column.setText(String.valueOf(firstBox +forthBox                                

                                         + seventhBox));

                     editText_Diagonal.setText(String.valueOf(firstBox + fifthBox

                                         + ninthBox));

                  }

                else if (row_No == 1 && column_No == 2) {

                           changeUserText_ToInt();

                     editText_Row.setText(String.valueOf(firstBox + secondBox

                                         + thirdBox));

                     editText_Column.setText(String.valueOf(secondBox + fifthBox

                                         + eighthBox));

              } else if (row_No == 1 && column_No == 3 && leftDiagonal_No == 1) {

                           changeUserText_ToInt();

                     editText_Row.setText(String.valueOf(firstBox + secondBox

                                         + thirdBox));

                     editText_Column.setText(String.valueOf(thirdBox + sixthBox

                                         + ninthBox));

                     editText_Diagonal.setText(String.valueOf(thirdBox + fifthBox

                                         + seventhBox));

                       }

//further EditTexts condition and code implementation are same as described above            

               }

               @Override

               public void beforeTextChanged(CharSequence s, int start, int count,

                           int after) {

                     // TODO Auto-generated method stub

              }

               @Override

              public void onTextChanged(CharSequence s, int start, int before,

                           int count) {

                     // TODO Auto-generated method stub

              }

 

              private TextWatcher setUserVaule(int row_no, int column_no,

                           int leftdiagonal_no, int rightdiagonal_no) {

                     row_No = row_no;

                     column_No = column_no;

                     leftDiagonal_No = leftdiagonal_no;

                     rightDiagonal_No = rightdiagonal_no;

                     return this;

              }

             private void changeUserText_ToInt() {

 

              if (first_EditText_Box.getText().length() != 0)

                     firstBox = Integer

                           .parseInt(first_EditText_Box.getText().toString());

              else

                     firstBox = first_EditText_Box.getText().length();

           }

         }

The onChange event is helpful when you’ve to deal with the following things:

  •    Let the user know (in realtime) how many characters he typed.

 

  •    Let the user know (in realtime) how many remaining characters

he is allowed to type.

 

  •     Make realtime processing of the content (like sending it

online and fetch some partial results of the partial typed

edittext)

 

You’ve to implement your own instance of TextWatcher and let the edittext know that you want to be notified at each change by calling the method EditText.addTextChangedListener..

-By Jitendra Sharma

Android Developer


THE AUTHORRishabh Agrawal

Rishabh Agrawal is the founder of Creatiosoft, a company focused on creating high-quality software for the iGaming industry, specialising in poker and card games. With years of experience, Rishabh is dedicated to delivering engaging and user-friendly gaming experiences. Through this blog, he shares his passion and insights to help readers understand the latest trends and advancements in iGaming.

Comments are closed.

Recent Posts

The Future of Mobile Gaming: What to Expect in the Next 5 Years

Over the years, mobile gaming has seen amazing development and innovation utilized by the game development company in India. It…
06 Jun 2023 Rishabh Agrawal

How Do I Get Started With NFT Gaming?

The popularity of the NFT game has created a different fan base. There was a time when games were a…
18 Jul 2022 Rishabh Agrawal

What Are The Top Trends in NFT Marketplace 2022?

The NFTs are the new engaging and revolutionary technology across the globe. Though, these non-fungible tokens appeared for the first…
09 Jun 2022 Rishabh Agrawal