2013-05-16 5 views
0

J'utilise le tutoriel vogella, et je suis presque suivi les instructions exactement, mais il est en quelque sorte me donner une erreur sur le texte et radiobutton disant qu'il ne peut pas être résolu ou il n'est pas dans le domaine . Je suis vraiment nouveau sur Android. Pourriez-vous s'il vous plaît m'aider avec le code.Android température erreur tutoriel Vogella

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; 
} 
} 

Voici mon code pour 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> 

L'erreur est sur editText1, radio0, Radio1 et button1 ... Pour eux, toute l'erreur est la même, à savoir qu'il ne peut pas être résolu ou n'est pas dans un champ.

+0

publiez votre activité_main xml – vinoth

+0

essayez de mettre votre findviewbyId pour tous dans onCréer et rendre leur variable publique –

+0

Où avez-vous initialisé votre bouton1, editText1, radio0, radio1? – Opiatefuchs

Répondre

0

Ici, il est ... J'utilisé votre fichier xml et il est résolu parfaitement

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); 
} 

et font comme ça

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

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

     } 
    }); 
} 
+0

Merci pour votre temps sur le code, mais je reçois toujours la même erreur, même après avoir utilisé votre code. Il est toujours dit qu'il ne peut pas être résolu ou n'est pas dans un champ. –

+0

avez-vous copié le string.xml correctement du tutorial.do vous toute erreur sur ce – vinoth

+0

faire une chose, retirez votre android: onClick = "myClickHandler" du fichier xml et créez votre setonclicklister comme ce b1.setOnClickListener (new OnClickListener() { \t \t \t \t \t \t @Override \t \t \t onClick public void (Voir v) { \t \t \t \t // TODO méthode généré automatiquement stub \t \t \t \t \t \t \t} \t \t}); et mettre le code de commutateur à l'intérieur, j'espère que cela fonctionnera –

0

J'ai vérifié votre code, il fonctionne parfaitement changer le activity_main comme ce

<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> 
+0

Il montre la même erreur ... :( –

+0

essayez de nettoyer votre project project-> clean in eclipse – vinoth

+0

On dit que R ne peut pas être résolu en une variable, maintenant –