user728702
user728702

Reputation: 99

can i get Edit text leave event

i want edittext "text" to be reflected on textview after Edittext leave event is it possible in android i tried with this can anybody tell me whats wrong or its not possible in android?

i tried every event that possible

objNextbet=getNextBets();
            Button btnbetNow =(Button)findViewById(R.id.btnBetNow);
            try
            {
            SimpleExpandableListAdapter expListAdapter =
                new SimpleExpandableListAdapter(
                    this,
                    createBetGroupList("next"), // groupData describes the first-level entries
                    R.layout.group_row, // Layout for the first-level entries
                    new String[] { "BetGroup" },    // Key in the groupData maps to display
                    new int[] { R.id.childname },       // Data under "colorName" key goes into this TextView
                    createBetChildList("next") ,    // childData describes second-level entries
                    R.layout.child_row, // Layout for second-level entries
                    new String[] { "betText","betRate","betID" },   // Keys in childData maps to display
                    new int[] { R.id.txtBetText, R.id.txtdecRate,R.id.txtstrBetID}  // Data under the keys above go into these TextViews

                ) {
                @Override 
                public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
                {          
                     final View childview = super.getChildView(groupPosition, childPosition,isLastChild, convertView, parent); 


                     final TextView txtBetText = (TextView)childview.findViewById(R.id.txtBetText);
                     final TextView txtstrBetID = (TextView)childview.findViewById(R.id.txtstrBetID);
                     final TextView txtdecRate = (TextView)childview.findViewById(R.id.txtdecRate);                  


                     String strBetGroup="";
                     for(int n = 0 ; n < objNextbet.size() ; n++ ) 
                        {
                         if(objNextbet.get(n).getBetText().toString().equals(txtBetText.getText().toString()))
                          {
                             strBetGroup=objNextbet.get(n).getstrBetGroupName().toString();
                          }
                        }



                     Button btnBetNow = (Button)childview.findViewById(R.id.btnBetNow);
                     btnBetNow.setTag(txtBetText.getText() + "-" +
                             txtstrBetID.getText() +"-" +txtdecRate.getText()+"-"+strBetGroup);

                     btnBetNow.setOnClickListener(new OnClickListener() 
                     {    
                        @Override             
                        public void onClick(View view) 
                        {                 
                           try
                           {
                               String TagValue=(String) view.getTag();
                               final String bet[] = TagValue.split("-");

                               final Dialog dialogbetNow = new Dialog(myucontext);
                               /** Disabling The PopUp Title Bar */
                               dialogbetNow.requestWindowFeature(Window.FEATURE_NO_TITLE); 

                               /** Set The Content For The PopUp */
                               dialogbetNow.setContentView(R.layout.popupbet);

                                /** Set The PopUp Deposit Balance */ 
                                  TextView txtCashcredit =(TextView)dialogbetNow.findViewById(R.id.txtCashcredit); 
                                  txtCashcredit.setText(Double.toString(objCGUserProfile.getUsedCredit()).toString());

                                  final TextView txtbetBetText = (TextView)dialogbetNow.findViewById(R.id.txtbetBetText);
                                  txtbetBetText.setText(bet[0]);

                                  TextView txtbetRate = (TextView)dialogbetNow.findViewById(R.id.txtbetRate);
                                  txtbetRate.setText(bet[2]);

                                  Button btnpopupBetNow = (Button)dialogbetNow.findViewById(R.id.btnpopupBetNow);
                                  btnpopupBetNow.setOnClickListener(new OnClickListener()
                              {

                                @Override
                                public void onClick(View v)
                                {

                                    final EditText ETStake = (EditText)dialogbetNow.findViewById(R.id.ETStake);

                                    if(ETStake.getText().toString().equals(""))
                                    {
                                        TextView txtError =(TextView)dialogbetNow.findViewById(R.id.txtError);
                                        txtError.setTextColor(Color.RED);
                                        txtError.setText("Please Enter cash.");
                                    }
                                    else
                                    {
                                        final double cash = Double.valueOf((String)ETStake.getText().toString()).doubleValue();

                                        ETStake.setOnFocusChangeListener(new EditText.OnFocusChangeListener()
                                        {    
                                            @Override
                                            public void onFocusChange(View v,boolean hasFocus) 
                                            {
                                                if (!hasFocus)
                                                {
                                                    // TODO: the editText has just been left 
                                                    TextView txtRisk = (TextView)dialogbetNow.findViewById(R.id.txtRisk);
                                                    TextView txtReturn = (TextView)dialogbetNow.findViewById(R.id.txtReturn);
                                                    txtRisk.setText(Double.toString(cash).toString());
                                                    double stake = Double.parseDouble(ETStake.getText().toString());
                                                    double rate = Double.parseDouble(bet[2]);
                                                    double betReturn = stake * rate;
                                                    txtReturn.setText(Double.toString(betReturn));
                                                }

                                            }
                                        });

                                    }
                                }
                            });

                                  ImageView imgCancel = (ImageView)dialogbetNow.findViewById(R.id.imgCancel);
                                  imgCancel.setOnClickListener(new OnClickListener() {

                                    @Override
                                    public void onClick(View v) 
                                    {
                                         try 
                                         {
                                           dialogbetNow.cancel();   
                                         }
                                         catch (Exception e)
                                         {
                                         }  
                                    }
                                });

                              dialogbetNow.show();

                           }

                           catch(Exception ex)
                           {
                               ex.toString();
                           }
                        } 
                        });                  

                     return childview;     
                } 

Upvotes: 8

Views: 16808

Answers (3)

rekaszeru
rekaszeru

Reputation: 19220

You can register an OnFocusChangeListener on your EditText inside your activity's onCreate method:

final EditText et = (EditText)findViewById(R.id.my_edit_text);
et.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    @Override
    public void onFocusChange(View v, boolean hasFocus)
    {
        if (!hasFocus)
            // TODO: the editText has just been left
    }
});

Here the v parameter of the onFocusChange is your EditText control.

Also, if you want to update your TextView on every change in the EditText's content, you should put your update code inside the public void afterTextChanged(Editable s) method of the registered TextWatcher.

//Make sure, that the txtRisk TextView is part of the dialogbetNow view.

Upvotes: 21

Uday
Uday

Reputation: 6023

here textMessage is your editext

 textMessage.addTextChangedListener(new TextWatcher(){
            public void afterTextChanged(Editable s) {
                i++;
                tv.setText(textMessage.getText.toString());
            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after){}
            public void onTextChanged(CharSequence s, int start, int before, int count){}
        }); 

Upvotes: 2

Vladimir Ivanov
Vladimir Ivanov

Reputation: 43098

Use onFocusChangeListener. Every view will notify you about loosing focus via that interface.

Upvotes: 1

Related Questions