Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set default value to 0 in edittext when nothing is inputted?

Tags:

java

android

I have an app here which adds the number. I have 4 edittexts here. What I want to happen is that when i entered none in one of the edittexts, it will assume that I entered 0. How can it be done? Here is my code:

public class Order extends Activity {
Button GoBackHome;
private Button button1;  
private EditText txtbox1,txtbox2,txtbox3,txtbox4;  
private TextView tv;
Button PayNow;

@Override
public void onBackPressed() {
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.order);

        GoBackHome = (Button) findViewById(R.id.gohomebutton);
        PayNow = (Button) findViewById(R.id.button2);
        txtbox1= (EditText) findViewById(R.id.editText1);  
        button1 = (Button) findViewById(R.id.button1);  
        tv = (TextView) findViewById(R.id.editText5);  
        txtbox2= (EditText) findViewById(R.id.editText2);
        txtbox3= (EditText) findViewById(R.id.editText3);
        txtbox4= (EditText) findViewById(R.id.editText4);
        button1.setOnClickListener(new clicker());  

        GoBackHome.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                final Intent i = new Intent(Order.this, MainActivity.class);               
                startActivity(i);
            }
        });

        PayNow.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                final Intent i = new Intent(Order.this, Payment.class);               
                startActivity(i);
            }
        });


}


class clicker implements Button.OnClickListener  
{  
    public void onClick(View v)  
    {  
        String a,b,c,d;  
        Integer vis;  
        a = txtbox1.getText().toString();  
        b = txtbox2.getText().toString();
        c = txtbox3.getText().toString();
        d = txtbox4.getText().toString();
        vis = Integer.parseInt(a)*2+Integer.parseInt(b)*3+Integer.parseInt(c)*4+Integer.parseInt(d)*5;  
        tv.setText(vis.toString());  
    }  
}  

}
like image 391
Kerv Avatar asked Aug 27 '13 22:08

Kerv


3 Answers

You can do as Tushar said or you can initialize the value in the XML. Something like

<EditText 
    android:name="@+id/editText1"
    android:text="0"/>

FYI you might also find it cleaner to handle your button clicks on xml like:

<Button
    android:name="@+id/btn1"
    android:onClick="handleClicks"/>

and then in java you'd have a public void method:

public void handleClicks(View clickedView){
   if(clickedView.getId() == btn1.getId(){
       ...
   } else if (...){}
}
like image 176
Andrew G Avatar answered Oct 25 '22 16:10

Andrew G


initialize as :

txtbox1.setText("0");
like image 24
Tushar Avatar answered Oct 25 '22 16:10

Tushar


Check the EditText length when you get it

String value = null;

if(ed.getText().length()){
 value = textBox.getText().toString();
} else 
 value = 0+"";
like image 37
Rachit Mishra Avatar answered Oct 25 '22 17:10

Rachit Mishra