2013-05-08 54 views
0

我道歉,如果语法是关闭这里,特别是关于布尔:的Android使用布尔标志来定义用户输入

public class WeightConverter extends Activity implements OnClickListener, OnCheckedChangeListener { 
    Button convertWeight; 
    TextView conversionResults; 
    EditText enterWeight; 
    RadioGroup weightPicker; 
    RadioButton radKG, radLB; 
    double weightValue, convertedWeight; 
    String weightString; 
    String measurement; 
    Boolean weightSwitch; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.weightconverter); 
     initializeVariables(); 
     weightSwitch = false; 
     radKG.setChecked(true); 
    } 

    private void initializeVariables() { 
     convertWeight = (Button) findViewById(R.id.btnConvertWeight); 
     conversionResults =(TextView) findViewById(R.id.tvWeightConversion); 
     enterWeight =(EditText) findViewById(R.id.etWeightToConvert); 
     weightPicker = (RadioGroup) findViewById(R.id.rgWeightType); 
     radKG = (RadioButton) findViewById(R.id.radKG); 
     radLB = (RadioButton) findViewById(R.id.radLB); 
     convertWeight.setOnClickListener(this); 
     weightPicker.setOnCheckedChangeListener(this); 


    } 

    @Override 
    public void onClick(View v) { 

     switch (v.getId()) { 

     case R.id.btnConvertWeight: 

      if (weightSwitch = true){ 
       convertedWeight = weightValue /2.2; 
       measurement = "Kilograms"; 
      }else{ 
       convertedWeight = weightValue *2.2; 
       measurement = "Pounds"; 
      } 


      conversionResults.setText(weightValue + " = " + String.valueOf(convertedWeight) + " " + measurement); 
      break; 
     } 

    } 

    @Override 

    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     weightValue = Double.parseDouble(enterWeight.getText().toString()); 
     switch (checkedId) { 

     case R.id.radKG: 

      weightSwitch = true; 

      break; 
     case R.id.radLB: 

      weightSwitch = false; 

      break; 

     } 
    } 



} 

取决于用户是否选择所述布尔类型应该被执行的不同的计算的,但只有转化为英镑的工作..

回答

0

您正试图与=运营商在这条线比较boolean值:

if (weightSwitch = true){ 

=是赋值运算符,所以weightSwitch总是true。因为它已经是一个boolean

if (weightSwitch) 

使用==比较boolean值,或更好。

+0

真棒!尽管轻微的微笑,如果我不_exclusively_指定一个单选按钮然后计算返回0即。如果我只是输入一个值,然后按转换它只是返回0,只有当我按任何一个单选按钮计算发生,我觉得它有一些与“radKG.setChecked(true);” ? – dyatesupnorth 2013-05-08 20:04:11

+0

我目前还不熟悉Android;我刚看到你的错误恰好与纯Java相关。 – rgettman 2013-05-08 20:06:05

相关问题