Search code examples
androidtextviewsettext

TextView not showing up on Android device?


I have a few views in a Linear Layout. After clicking a button, some math is done. The result is then displayed in a textview. It works fine on the emulator, but it does not on my Android device.

Entire Layout file:

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

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/text_enter"
    android:textSize="20sp" />

<EditText
    android:id="@+id/num"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:inputType="number" >

    <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/num" >

<RadioButton
    android:id="@+id/radioButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/radio_celsius"
    android:onClick="onRadioButtonSelectUnit" />

<RadioButton
    android:id="@+id/radioButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/radio_fahrenheit"
    android:onClick="onRadioButtonSelectUnit" />

</RadioGroup>

<Button
    android:id="@+id/convert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/radioGroup1"
    android:onClick="onClickConvert"
    android:text="@string/button_convert" />

    <TextView
    android:id="@+id/answer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/convert"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="22dp"
    android:layout_marginTop="17dp"
    android:layout_toLeftOf="@+id/convert"
    android:textColor="#000000"
    android:textSize="20sp"
    android:ellipsize="end" />

<TextView
    android:id="@+id/unit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/answer"
    android:layout_toRightOf="@+id/answer"
    android:textColor="#000000"
    android:textSize="20sp" />


</RelativeLayout>

This is part of the onClick event:

double result;
if(unitSelected.isChecked()){
        EditText number = (EditText)findViewById(R.id.num);
        TextView converted = (TextView)findViewById(R.id.answer);
        TextView unit = (TextView)findViewById(R.id.unit);
        result = Double.parseDouble(number.getText().toString()) * 9/5 + 32;
        String finalResult = String.valueOf(result);
        converted.setText(finalResult);
        Toast.makeText(this,String.valueOf(result), Toast.LENGTH_LONG).show();
        unit.setText("Fahrenheit");
        return;
    }
    else {
        EditText number = (EditText)findViewById(R.id.num);
        TextView converted = (TextView)findViewById(R.id.answer);
        TextView unit = (TextView)findViewById(R.id.unit);
        result = (Double.parseDouble(number.getText().toString()) - 32) * 5/9;
        String finalResult = String.valueOf(result);
        converted.setText(finalResult);
        unit.setText("Celsius");
        return;
    }

I had it setup differently before, without using the finalResult String, but was trying some different things to try and get it working. The toast was just to make sure the math was being done correctly. It is. The unit.setText() is working fine, but the answer won't show up next to it. It does work on the emulator, just not on my device (Note 4).


Solution

  • Remove android:layout_toLeftOf="@+id/convert" in the "id/answer" TextView. Not quite sure offhand of the discrepancy between devices, but it seems to line up now.

    Also, I think there's a typo at <requestFocus />