2015-04-07 4 views
0

Я хочу, чтобы преобразовать EditText войти в поплавок, но приложение останавливается, и я не знаю, что я делаю неправильно ..Как конвертировать EditText войти в Float

Это код из Java файл:

EditText janeiro1 = (EditText) findViewById(R.id.editText1); 
float janeiro = Float.valueOf(janeiro1.getText().toString()); 

И это код из файла .xml:

<EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="numberDecimal" 
     android:ems="10" 
     android:id="@+id/editText2" 
     android:layout_above="@+id/textView3" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 

И это ошибка выхода LogCat:

java.lang.RuntimeException: Unable to start activity 
    ComponentInfo{com.example.kiowa.myapp/com.example.kiowa.myapp.c_detalhado}: 
java.lang.NumberFormatException: Invalid float: "" 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
    at android.app.ActivityThread.access$800(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5221) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: java.lang.NumberFormatException: Invalid float: "" 
    at java.lang.StringToReal.invalidReal(StringToReal.java:63) 
    at java.lang.StringToReal.parseFloat(StringToReal.java:308) 
    at java.lang.Float.parseFloat(Float.java:306) 
    at com.example.kiowa.myapp.c_detalhado.onCreate(c_detalhado.java:39) 
    at android.app.Activity.performCreate(Activity.java:5933) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
    at android.app.ActivityThread.access$800(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5221) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 

ответ

1
usernameInput = (EditText) findViewById(R.id.username); // inOncreateview 

    // Somewhere in method 
    float a; 

    try{ 
if(!usernameInput.getText().toString().equalsignorecase("")) 
    a = Float.parseFloat(usernameInput.getText().toString()); 
    }catch(NumberFormatException e){ 
    log.d("Error","Not Convertible"); 
    e.printstacktrace(); 
    } 
0
EditText usernameInput = (EditText) findViewById(R.id.username); 
float a = 0f; 
try { 
    a = Float.parseFloat(usernameInput.getText().toString()); 
} catch (Exception e) { 
    a = 0f; 
} 

ОБНОВЛЕНО

Там другая ошибка в коде. Я тестировал это, и он отлично работает.

MainActivity.java

public class MainActivity extends ActionBarActivity implements OnClickListener { 
    EditText editText; 
    TextView textView; 
    Button button1; 
    float a; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     editText = (EditText) findViewById(R.id.editText1); 
     textView = (TextView) findViewById(R.id.textView1); 
     button1 = (Button) findViewById(R.id.button1); 
     button1.setOnClickListener(this); 

    } 
    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.button1) { 
      try { 
       a = Float.parseFloat(editText.getText().toString()); 
       textView.setText(String.valueOf(a)); 
      } catch (Exception e) { 
       a = 0f; 
       textView.setText(String.valueOf(a)); 
      } 
     } 

    } 
} 

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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.test.MainActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="33dp" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/editText1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="17dp" 
    android:text="Button" /> 

+0

Я пытался с этим кодом, и я получил выход ошибки LogCat что я вставил выше .. – colibriii

+0

~ DELETED ~ Извините, я ошибаюсь ... –

+0

В вашем коде есть еще одна ошибка. Я проверил свой код, и он работает –

Смежные вопросы