切换取决于先前的开关变量

时间:2012-01-30 18:34:46

标签: java android

我对编程很陌生,而我正试图创建一个你将要死的那天的计算器(显然是假的)。我做了以下开关,从用户输入中获取数据,例如你吸烟或男性或女性的问题。 这是我的代码:

package as.as;

import as.as.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.TextView;

public class myMenu extends Activity{
  protected static final float Die = 80;
  protected  float Gender;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final TextView MensajeGender = (TextView)findViewById(R.id.age);
    final RadioGroup rggender = (RadioGroup)findViewById(R.id.radioGroup2);

    rggender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
      public void onCheckedChanged(RadioGroup group, int checkedIdGender) {
        switch(checkedIdGender){
          //male
          case 2131099655:
            double Gender = (Die*0.93);    
            MensajeGender.setText("" + Gender);
            break;
          //female
          case 2131099656:
            Gender =  (Die*1.04);
            MensajeGender.setText("" + Gender);
            break;
        }

        final RadioGroup rgsmoke = (RadioGroup)findViewById(R.id.radioGroup1);
        rgsmoke.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
          public void onCheckedChanged(RadioGroup group, int checkedIdSmoke) {
            switch(checkedIdSmoke){
              case 2131099660:
              double Smoke =  Gender*0.93;
              MensajeGender.setText("" + Smoke);
              break;
            case 2131099661:
              Smoke = Gender*1.04;    
              MensajeGender.setText(" " + Smoke);
              break;
            }
          }
        });
      }
    });
  };
}
编辑(补充问题):这里有什么问题? 编辑2:如果我完成这个,你会怎么建议我学习android中的程序?一本书还是什么?(编程全新,即使我知道一些C ++)

1 个答案:

答案 0 :(得分:0)

你不是在这里问什么,但我认为你正在努力解决代码设计......


修改的:
当你开始编程时,我建议先学习Java。在你不了解Java的基础知识之前,与android斗争真的很令人沮丧。我会搜索Java控制台教程(当我几年前开始时那里有很好的教程; - )。


您无法单独对单选按钮进行更改,因为它们相互依赖。首先,我建议您在检查状态更改时触发辅助方法(例如updateDate())。

这是帮助者会做的事情:

public void updateDate() {
    final TextView MensajeGender = (TextView)findViewById(R.id.age);
    final RadioGroup rggender = (RadioGroup)findViewById(R.id.radioGroup2);
    final RadioGroup rgsmoke = (RadioGroup)findViewById(R.id.radioGroup1);

    double date;

    // switch gender and calculate date
    // switch smoke and calculate date

    MensajeGender.setText(" " + date);
}

您可以使用getCheckedRadioButtonId()检查所选按钮。并建议使用文本ID代替硬编码的数字(XML中为@+id/idname,代码中为R.id.idname。)