2011-04-29 14 views
5

मैं एडिटेक्स्ट छोड़ने के बाद टेक्स्ट टेक्स्ट पर "टेक्स्ट" को प्रतिबिंबित करना चाहता हूं, एंड्रॉइड में यह संभव है कि मैंने एंड्रॉइड में यह संभव किया है कि मैंने यह कोशिश की है कि कोई मुझे बता सकता है कि एंड्रॉइड में क्या गलत है या यह संभव नहीं है?क्या मुझे टेक्स्ट टेक्स्ट इवेंट संपादित कर सकते हैं

मैं हर घटना है कि संभव

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

उपयोग 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 
    } 
}); 

यहाँ onFocusChange की v पैरामीटर अपने EditText नियंत्रण है:

1

यहाँ textMessage अपने 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 रजिस्टर कर सकते हैं।

इसके अलावा, अगर आप EditText की सामग्री में हर परिवर्तन पर अपने TextView अपडेट करना चाहते हैं, तो आप पंजीकृत TextWatcher की public void afterTextChanged(Editable s) विधि के अंदर अपने अद्यतन कोड डालना चाहिए।

// सुनिश्चित करें कि txtRisk टेक्स्ट व्यू dialogbetNow व्यू का हिस्सा है।

+0

अपने OnFocusChangeListener साथ काम नहीं कर रहा ... :( – user728702

+0

आप वास्तव में श्रोता विधि के अंदर मिलता है? क्या 'txtRisk' वहाँ एक मूल्य है? कृपया आगे के संदर्भ के लिए मेरे अपडेट देखें। – rekaszeru

+0

मैं कैसे पोस्ट करूँ मेरे पूरे कोड यहाँ – user728702

संबंधित मुद्दे