我有3个复选框和2个edittexts。当用户选中一个复选框并在一个edittext中输入数据时,就会进行计算。如果我选中另一个复选框,则edittext值应自动清除。然而,即使我检查了其他复选框后,edittexts中的数据仍然存在。我尝试关闭应用程序的finish()。知道如何在不关闭应用程序的情况下实现这一目标吗?
对不起,如果这个问题听起来很奇怪。我只是在学习android 谢谢。
我的onCheckedChangedListener的代码
public void onCheckedChanged(CompoundButton predictionChkView, boolean isPredictionChecked)
{
// TODO Auto-generated method stub
switch(predictionChkView.getId())
{
case R.id.chkLastMileage1:
isChkLastMileage1=true;
chkLastMileage5.setChecked(false);
chkLastMileage10.setChecked(false);
ETPredictKm.setText("");
ETPredictFuelQty.setText("");
break;
case R.id.chkLastMileage5:
isChkLastMileage5=true;
chkLastMileage1.setChecked(false);
chkLastMileage10.setChecked(false);
ETPredictKm.setText("");
ETPredictFuelQty.setText("");
break;
case R.id.chkLastMileage10:
isChkLastMileage10 =true;
chkLastMileage1.setChecked(false);
chkLastMileage5.setChecked(false);
ETPredictKm.setText("");
ETPredictFuelQty.setText("");
break;
}
}
Code for the onFocusChangedListener
public void onFocusChange(View predictionFocusView, boolean hasPredictionETFocus)
{
// TODO Auto-generated method stub
FuelStoredInfo predictInfo = new FuelStoredInfo(this);
predictInfo.open();
predictInfo.getAvgMileage(this);
predictInfo.close();
try
{
predictKm = Long.parseLong(ETPredictKm.getText().toString());
predictFuetlQty = Double.parseDouble(ETPredictFuelQty.getText().toString());
}
catch(NumberFormatException ne)
{
ne.printStackTrace();
}
if(isChkLastMileage1 ==true || isChkLastMileage5==true||isChkLastMileage10==true)
{
if(ETPredictKm.hasFocus())
{
ETPredictKm.setText("");
if(predictFuetlQty!=0)
{
predictKm =(long) (predictionMileage*predictFuetlQty);
//setPredictKm(predictKm);
ETPredictKm.setText(String.valueOf(predictKm));
}
}
else if(ETPredictFuelQty.hasFocus())
{
ETPredictFuelQty.setText("");
if(predictKm!=0)
{
predictFuetlQty =predictKm/predictionMileage;
//setPredictFuetlQty(predictFuetlQty);
ETPredictFuelQty.setText(new DecimalFormat("##.##").format(predictFuetlQty));
}
}
}
else
{
Toast.makeText(getApplicationContext(), "Please check a checkbox!", Toast.LENGTH_LONG).show();
}
}
public void onClick(View v)
{
// TODO Auto-generated method stub
ETPredictKm.setText("");
ETPredictFuelQty.setText("");
chkLastMileage1.setChecked(false);
chkLastMileage5.setChecked(false);
chkLastMileage10.setChecked(false);
}
答案 0 :(得分:0)
添加到您的功能。
EditText editText = (EditText)findViewById(R.id.edittext);
editText.setText("");
答案 1 :(得分:0)
当您选中其他复选框时,请执行此操作
edittext.setText("");
其他EditText
修改 -----
为您的所有FocusChangeListener
添加EditText
并执行此操作----
ETPredictKm.setOnFocusChangeListener(new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus)
ETPredictKm.setText("");
}
});
答案 2 :(得分:0)
如果您存储对editText的引用,则可以调用
editText.setText("");
当复选框处于所需状态时,在onCheckedChange侦听器中执行此操作。
答案 3 :(得分:0)
在oncheckedchangelistener上添加一个复选框,然后输入edittest.setText("");内部。
做这样的事情:
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
edittext.setText("");
}
});
另外,不要忘记为你的editexts,复选框等声明变量:
//example
final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
让我知道它是否有效:)
替代:
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( checkbox.isChecked() )
{
edittext.setText("");
}
}
});
答案 4 :(得分:0)
CheckBox check1 = (CheckBox) findViewById(R.id.checkbox1);
Checkbox check2 = (Checkbox) findViewById(R.id.checkbox2);
if (check1.isChecked()) {
EditText myEditText = (EditText) findViewById(R.id.edit_text_1);
myEditText.setText("");
}
if (check2.isChecked()) {
EditText myEditText2 = (EditText) findViewById(R.id.edit_text_2);
myEditText1.setText("");
}