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