我在这里有一个应用程序,可以添加数字。我这里有4个edittexts。我想要发生的是,当我在其中一个edittexts中没有输入时,它会假设我输入了0.如何才能完成?这是我的代码:
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());
}
}
}
答案 0 :(得分:6)
你可以像Tushar所说的那样做,或者你可以初始化XML中的值。像
这样的东西<EditText
android:name="@+id/editText1"
android:text="0"/>
仅供参考,您可能会发现处理按钮点击xml更加清晰,如:
<Button
android:name="@+id/btn1"
android:onClick="handleClicks"/>
然后在java中你有一个公共的void方法:
public void handleClicks(View clickedView){
if(clickedView.getId() == btn1.getId(){
...
} else if (...){}
}
答案 1 :(得分:1)
初始化为:
txtbox1.setText("0");
答案 2 :(得分:1)
您可以在XML文件中设置android:hint="0"
,然后在代码中检查它是否为空(可能使用TextUtils.isEmpty()
)并将某个变量设置为0。
android:hint="0"
会在EditText
s中显示“0”,但输入任何内容时“0”将消失。
然后您可以将onClick()
更改为此:
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();
try {
vis = Integer.parseInt(a)*2+Integer.parseInt(b)*3+Integer.parseInt(c)*4+Integer.parseInt(d)*5;
tv.setText(vis.toString());
} catch (NumberFormatException e) {
vis = "0";
}
// Do something with "vis"
}
}
或者您可以创建一个方法来检查值,尝试解析为int或返回默认值。
public int getInt(String edtValue, int defaultValue) {
int value = defaultValue;
if (edtValue != null) {
try {
value = Integer.parseInt(edtValue);
} catch (NumberFormatException e) {
value = defaultValue;
}
}
return value;
}
然后将您的通话更改为
vis = this.getInt(a, 0) * 2 + this.getInt(b, 0) * 3 + this.getInt(c, 0) * 4 + this.getInt(d, 0) * 5;
答案 3 :(得分:1)
获取后检查EditText长度
String value = null;
if(ed.getText().length()){
value = textBox.getText().toString();
} else
value = 0+"";