我正在尝试制作一个 android 应用程序来记录油耗。我有 4 个 EditText 即。
- 公里读数
- 燃料量
- 燃油价格
- 总花费
公里读数输入是强制性的,而在其余 3 个中,用户需要任意两个。因此,当用户单击第三个 Edittext 时,他会自动获取在其他两个的帮助下获得的计算值..帮助?
你好!
谢谢大家的所有建议。不,我不希望你们都为我工作。我第一次尝试在这里问这个问题。我自己想出了这个问题,这里有代码,所以它可能对将来需要它的任何人都有帮助。
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.fuelexpense);
ETKm = (EditText)findViewById(R.id.ETKm);
ETFuelQty = (EditText)findViewById(R.id.ETFuelQty);
ETFuelPrice = (EditText)findViewById(R.id.ETFuelPrice);
ETTotalCost = (EditText)findViewById(R.id.ETTotalCost);
btnSave = (Button)findViewById(R.id.btnSave);
btnClear = (Button)findViewById(R.id.btnClear);
chkFullTank = (CheckBox)findViewById(R.id.chkFullTank);
btnSave.setOnClickListener(this);
btnClear.setOnClickListener(this);
ETFuelQty.setOnFocusChangeListener(this);
ETFuelPrice.setOnFocusChangeListener(this);
ETTotalCost.setOnFocusChangeListener(this);
}
public void onFocusChange(View EditTextFocus , boolean hasFocus)
{
// TODO Auto-generated method stub
try
{
km= Long.parseLong(ETKm.getText().toString());
fuelQty= Integer.parseInt(ETFuelQty.getText().toString());
fuelPrice= Double.parseDouble(ETFuelPrice.getText().toString());
totalCost= Double.parseDouble(ETTotalCost.getText().toString());
}
catch(NumberFormatException ne)
{
ne.printStackTrace();
}
if(ETTotalCost.hasFocus())
{
if((fuelQty!=0)&&(fuelPrice!=0))
totalCost=fuelQty*fuelPrice;
ETTotalCost.setText(newDecimalFormat("##.##").format(totalCost));
}
else if(ETFuelQty.hasFocus())
{
if((fuelPrice!=0)&&(totalCost!=0))
fuelQty= (int) (totalCost/fuelPrice);
ETFuelQty.setText(String.valueOf(fuelQty));
}
else if(ETFuelPrice.hasFocus())
{
if((fuelQty!=0)&&(totalCost!=0))
fuelPrice=totalCost/fuelQty;
ETFuelPrice.setText(String.valueOf(fuelPrice));
}
}
为我工作..再次感谢