2011-04-29 59 views
5

我想编辑文本“text”在edittext离开事件后在textview上反映它可能在Android中我试过这可以任何人告诉我什么是错的或它不可能在Android?我可以得到编辑文本离开事件

我想尽事件可能

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

回答

1

这里文字信息是你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

您可以在EditText您的活动的onCreate方法内注册一个OnFocusChangeListener

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

这里onFocusChangev参数是你EditText控制。

另外,如果你想在在EditText的内容的每一个变化更新TextView,你应该把你的更新代码注册TextWatcherpublic void afterTextChanged(Editable s)方法中。

//确保txtRisk TextView是dialogbetNow视图的一部分。

+0

其不OnFocusChangeListener工作... :( – user728702 2011-04-29 11:09:59

+0

你实际上得到的监听器方法里面?难道'txtRisk'有没有价值?请参阅我的更新进一步参考。 – rekaszeru 2011-04-29 11:19:38

+0

如何张贴我的整个代码在这里 – user728702 2011-04-29 11:35:58