2011-04-29 25 views
5

Chcę edittext "tekst", które mają być odzwierciedlone na tekst po wydarzeniu urlopu Edittext jest możliwe w Androidzie próbowałem z tym może ktoś mi powiedzieć, co jest nie tak lub nie jest możliwe w systemie Android?Czy mogę uzyskać edytować tekst zostawić wydarzenie

próbowałem każde zdarzenie, które możliwe

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;  
       } 

Odpowiedz

1

Używaj onFocusChangeListener. Każdy widok powiadomi Cię o utracie koncentracji za pośrednictwem tego interfejsu.

1

tutaj textMessage to 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){} 
     }); 
15

Możesz zarejestrować OnFocusChangeListener na EditText wewnątrz onCreate metody swoją aktywność w:

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 
    } 
}); 

Tutaj parametr onFocusChangev to kontrola EditText.

Ponadto, jeśli chcesz zaktualizować TextView na każdej zmianie w treści EditText „s, należy umieścić kod aktualizacji wewnątrz metody zarejestrowanego TextWatcherpublic void afterTextChanged(Editable s).

// Upewnij się, że tekst TextView jest częścią widoku txtRisk.

+0

jej nie działa z OnFocusChangeListener ... :( – user728702

+0

Czy rzeczywiście dostać się do metody detektora? Czy 'txtRisk' ma tam wartość? Proszę zobaczyć moje aktualizacji dla dalszego odniesienia. – rekaszeru

+0

Jak mogę napisać cały mój kod tutaj – user728702

Powiązane problemy