Android温度Vogella教程错误

时间:2013-05-16 11:08:43

标签: android

我正在使用vogella教程,我几乎完全按照说明进行操作,但它有点像文本和radiobutton的错误,说它无法解决或者不在现场。我是Android新手。你能不能帮我解决一下代码。

package convert.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class MainActivity extends Activity {
private EditText text;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

text = (EditText) findViewById(R.id.editText1);

}

// This method is called at button click because we assigned the name to the
// "On Click property" of the button
public void myClickHandler(View view) {
switch (view.getId()) {
case R.id.button1: 
    RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
    RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
    if (text.getText().length() == 0) {
        Toast.makeText(this, "Please enter a valid number",
                Toast.LENGTH_LONG).show();
        return;
    }

    float inputValue = Float.parseFloat(text.getText().toString());
    if (celsiusButton.isChecked()) {
        text.setText(String
                .valueOf(convertFahrenheitToCelsius(inputValue)));
        celsiusButton.setChecked(false);
        fahrenheitButton.setChecked(true);
    } else {
        text.setText(String
                .valueOf(convertCelsiusToFahrenheit(inputValue)));
        fahrenheitButton.setChecked(false);
        celsiusButton.setChecked(true);
    }
    break;
}
}

// Converts to celsius 
private float convertFahrenheitToCelsius(float fahrenheit) {
return ((fahrenheit - 32) * 5 / 9);
}

// Converts to fahrenheit
private float convertCelsiusToFahrenheit(float celsius) {
return ((celsius * 9) / 5) + 32;
}
}

这是我的activity_main.xml

代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/myColor" >

    <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:ems="10"
    android:inputType="numberSigned|numberDecimal"
     >

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/celsius" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/fahrenheit" />
</RadioGroup>


 <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calc" 
android:onClick="myClickHandler">
</Button>

</RelativeLayout>

错误发生在editText1,radio0,radio1和button1 ......对于所有错误,错误是相同的,即它无法解析或不在字段中。

2 个答案:

答案 0 :(得分:0)

这是...... 我使用了你的xml文件并且它被完美地解析了

EditText text;
RadioButton r1,r2;
    Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text = (EditText)findViewById(R.id.editText1);
    r1 =(RadioButton)findViewById(R.id.radio0);
    r1 =(RadioButton)findViewById(R.id.radio1);
}

并且喜欢这个

b1 = (Button)findViewById(R.id.button1);
    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // your Switch code here

        }
    });
}

答案 1 :(得分:0)

我检查了你的代码,它完全正常工作,改变了像这样的activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
 >

    <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:ems="10"
    android:inputType="numberSigned|numberDecimal"
     >

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="celsius" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fahrenheit" />
</RadioGroup>

 <Button
     android:id="@+id/button1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentTop="true"
     android:layout_toRightOf="@+id/editText1"
     android:onClick="myClickHandler"
     android:text="calc" />

</RelativeLayout>