2012-04-25 5 views
1

Android用の開発をしばらく考えていましたが、ついに落ちました。 Eclipseがセットアップされています.Eclipse用のAndroid SDKとADT Pluginもあります。 オンラインでチュートリアルを見つけ、その指示に従っていました。 私の知ることができない問題は、次のコード、主にtext.setText()とtext.getText()の呼び出しで、Eclipseのテキスト部分に下線が引かれ、エラーが発生することです。EclipseのAndroid 4 SDKのtext.getText()エラー

輸入ですか?

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 testActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

// 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.radioButton1); 
     RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radioButton2); 
     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; 
} 
} 
+0

カーソルが下線に移動したときに表示されるエラーは何ですか... – 5hssba

+0

テキストを解決できません... – Chupacabra

答えて

0

これを使用します。

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 ConvertActivity extends Activity { 
    private EditText text; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.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; 
    } 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/myColor" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="numberDecimal|numberSigned" > 
    </EditText> 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

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

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

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

</LinearLayout> 
0

あなたはtexteditオブジェクトを宣言しませんでした。あなたのonCreateメソッドで 追加:

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

editText1は多分違う、ウルmain.xmlレイアウトファイルに依存

はまた追加のonCreateメソッドこの前に:代わりにあなたのコードの

private EditText text; 
0

は、テキストを宣言していないよう、それはTextViewのかのEditText何であるようですか?

は、エラーが表示されないでしょう、このようにそれを宣言した後、この

public class testActivity extends Activity { 
/** Called when the activity is first created. */ 
TextView text; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    text = (TextView)findViewById(R.id.yourTextViewId); 
} 

のようにそれを定義します。

関連する問題