radio group setOnCheckedChangeListener(广播组 setOnCheckedChangeListener)
问题描述
我对无线电组有一些问题,我是 Android 开发的新手,所以我不知道如何处理它.这个表格有一些输入字段和无线电组,用于选择性别和保存按钮.但我不知道我可以把我的无线电组 setoncheakchangelistener 放在哪里?所以它给了我错误.
I have some problem with radio group, I am new to Android development so I don't have much idea to how can handle it.This is form which has some input filed and radio group for choosing gender and save button. but I don't know where can I exactly put my radiogroup setoncheakchangelistener? so it gives me errors.
主要活动:
package com.dietandroidproject;
import Databasedata.Person;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RadioGroup genderselected = (RadioGroup) findViewById(R.id.selectgender);
genderselected.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int selectedId) {
selectedId=genderselected.getCheckedRadioButtonId();
RadioButton genderchoosed = (RadioButton) findViewById(selectedId);
String gender = genderchoosed.getText().toString();
}
});
Button saveinformation = (Button) findViewById(R.id.saveinformation);
saveinformation.setOnClickListener(new View.OnClickListener() {
EditText weighttext = (EditText) findViewById(R.id.weighttext);
EditText heighttext = (EditText) findViewById(R.id.heighttext);
EditText usernametext = (EditText) findViewById(R.id.usernametext);
EditText agetext = (EditText) findViewById(R.id.agetext);
Spinner activitytext = (Spinner) findViewById(R.id.chooseactivity);
Button saveinformation = (Button) findViewById(R.id.saveinformation);
String pa = activitytext.getSelectedItem().toString();
@Override
public void onClick(View v) {
int weight = (int) Float.parseFloat(weighttext.getText()
.toString());
int height = (int) Float.parseFloat(heighttext.getText()
.toString());
String username = usernametext.getText().toString();
int age = (int) Float.parseFloat(agetext.getText().toString());
TextView genderchoosed = (TextView) findViewById(genderselected
.getCheckedRadioButtonId());
String gender = genderchoosed.getText().toString();
String pa = activitytext.getSelectedItem().toString();
//BMI==========================================================
int Bmivalue = calculateBMI(weight, height);
String bmiInterpretation = interpretBMI(Bmivalue);
float idealweight = idealweight(weight, height, gender, pa, age);
double dailycalories=dailycalories(weight,height,gender,pa,age);
//insert data in to db===================================================
Person person = new Person();
person.setUsername(username);
person.setHeight(height);
person.setWeight(weight);
person.setAge(age);
person.setGender(gender);
person.setPa(pa);
person.setBmivalue(Bmivalue);
person.setBmiInterpretation(bmiInterpretation);
person.setIdealweight(idealweight);
person.setDailycalories(dailycalories);
Databasedata.DatabaseAdapter dbAdapter = new Databasedata.DatabaseAdapter(
MainActivity.this);
dbAdapter.insertPerson(person);
Toast.makeText(getApplicationContext(),
Bmivalue + "and you are" + bmiInterpretation,
Toast.LENGTH_LONG).show();
}
});
}
//BMI FUNCTION===============================================
private int calculateBMI(int weight, int height) {
return (int) (weight / (height * height));
};
private String interpretBMI(int Bmivalue) {
if (Bmivalue < 18.5) {
return "Underweight";
} else if (Bmivalue < 25) {
return "Normal";
} else if (Bmivalue < 30) {
return "Overweight";
} else {
return "Obese";
}
}
//IDEAL WEIGHT========================================
private float idealweight(int weight, int height, String gender, String pa,
int age) {
float x = (float) 0.0;
int bmi;
bmi = idealbmi(age);
x = bmi * (height * height);
return x;
}
public int idealbmi(int age) {
int bmi = 0;
if (age > 17 && age <= 19) {
bmi = 21;
}
if (age > 19 && age <= 24) {
bmi = 22;
}
if (age > 24 && age <= 34) {
bmi = 23;
}
if (age > 34 && age <= 44) {
bmi = 24;
}
if (age > 44 && age <= 54) {
bmi = 25;
}
if (age > 54 && age <= 64) {
bmi = 26;
}
if (age > 64) {
bmi = 27;
}
return bmi;
}
//DAILY CALORIES===============================================
public double suitablepa(String pa) {
double suitablepa = 0;
if (pa.equals("Highly active")) {
suitablepa = 1.48;
}
if (pa.equals("Active")) {
suitablepa = 1.25;
}
if (pa.equals("Low activity")) {
suitablepa = 1.11;
}
if (pa.equals("Sedentary")) {
suitablepa = 1;
}
return suitablepa;
}
private double dailycalories(int weight, int height, String gender,
String pa, int age) {
double dailycalori = 0;
double i;
double j;
double h;
double k;
if(gender.equals("femaleselected")){
i=9.36*weight;
j=726*height;
h=suitablepa(pa)*(i+j);
k=6.91*age;
dailycalori=354-k+h;
}else if(gender.equals("maleselected")){
i=15.91*weight;
j=539.6*height;
h=suitablepa(pa)*(i+j);
k=9.53*age;
dailycalori=662-k+h;
}
return dailycalori;
}
}
XML 代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgroundmain"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/personinformation"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.98" >
<EditText
android:id="@+id/heighttext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/usernametext"
android:layout_below="@+id/usernametext"
android:ems="10"
android:hint="Enter Your Height" >
</EditText>
<EditText
android:id="@+id/usernametext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Enter Username" />
<EditText
android:id="@+id/weighttext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/heighttext"
android:layout_below="@+id/heighttext"
android:ems="10"
android:hint="Enter Your Weight" />
<EditText
android:id="@+id/agetext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/weighttext"
android:layout_below="@+id/weighttext"
android:ems="10"
android:hint="Enter Your Age" >
<requestFocus />
</EditText>
</RelativeLayout>
<View
android:layout_width="250dp"
android:layout_height="1dip"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:background="#aaa" />
<RelativeLayout
android:id="@+id/choosegender"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.78" >
<TextView
android:id="@+id/choosefemaleormale"
android:layout_width="match_parent"
android:layout_height="30dip"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="10dip"
android:gravity="center"
android:text="Gender : "
android:textAlignment="center"
android:textColor="#555"
android:textSize="19sp" />
<RadioGroup
android:id="@+id/selectgender"
android:layout_width="220dip"
android:layout_height="wrap_content"
android:layout_below="@+id/choosefemaleormale"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/femaleselected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:checked="true"
android:text="female"
android:onClick="onRadioButtonClicked"
/>
<RadioButton
android:id="@+id/maleselected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:text="male"
android:onClick="onRadioButtonClicked" />
</RadioGroup>
</RelativeLayout>
<View
android:layout_width="250dp"
android:layout_height="1dip"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:background="#aaa" />
<RelativeLayout
android:id="@+id/choosepa"
android:layout_width="250dip"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center" >
<Spinner
android:id="@+id/chooseactivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:entries="@array/activityitems"
android:gravity="center"
android:prompt="@string/level_of_activity" />
</RelativeLayout>
<Button
android:layout_width="90dp"
android:layout_height="0dp"
android:layout_gravity="right"
android:layout_marginBottom="10dip"
android:layout_marginRight="20dp"
android:layout_weight="0.46"
android:background="@drawable/recent_foods_depressed"
android:hint="save"
android:text="save"
android:textColor="#fff"
android:textSize="20sp"
android:textStyle="bold"
android:onClick="saveinformation"
android:id="@+id/saveinformation"/>
</LinearLayout>
推荐答案
问题是你的单选按钮试图在你的主要活动中引用 onRadioButtonClicked
方法.但是您没有指定该方法.请记住,如果您使用的是 android:onClick
,则不应在 Main 活动中使用 setOnCheckedChangeListener
,反之亦然.
The thing is that your radio buttons trying to refer the onRadioButtonClicked
method in your main activity. But you didnt specify that method. Remember, if you're using android:onClick
you should not use setOnCheckedChangeListener
in your Main activity and vice versa.
这篇关于广播组 setOnCheckedChangeListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:广播组 setOnCheckedChangeListener
基础教程推荐
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 降序排序:Java Map 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01