Reputation: 99
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
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
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
Reputation: 43098
Use onFocusChangeListener. Every view will notify you about loosing focus via that interface.
Upvotes: 1