Android 设备上未显示 TextView?
TextView not showing up on Android device?
我在线性布局中有几个视图。单击一个按钮后,一些数学计算就完成了。然后将结果显示在文本视图中。它在模拟器上运行良好,但在我的 Android 设备上却不行。
整个布局文件:
<?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>
这是 onClick 事件的一部分:
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;
}
我以前有过不同的设置,没有使用 finalResult 字符串,但我尝试了一些不同的东西来尝试让它工作。敬酒只是为了确保数学计算正确。这是。 unit.setText() 工作正常,但答案不会出现在它旁边。
它可以在模拟器上运行,但不能在我的设备上运行(注 4)。
删除 "id/answer" TextView 中的 android:layout_toLeftOf="@+id/convert"
。不太确定设备之间的差异,但现在似乎是一致的。
此外,我认为 <requestFocus />
处有错字
我在线性布局中有几个视图。单击一个按钮后,一些数学计算就完成了。然后将结果显示在文本视图中。它在模拟器上运行良好,但在我的 Android 设备上却不行。
整个布局文件:
<?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>
这是 onClick 事件的一部分:
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;
}
我以前有过不同的设置,没有使用 finalResult 字符串,但我尝试了一些不同的东西来尝试让它工作。敬酒只是为了确保数学计算正确。这是。 unit.setText() 工作正常,但答案不会出现在它旁边。 它可以在模拟器上运行,但不能在我的设备上运行(注 4)。
删除 "id/answer" TextView 中的 android:layout_toLeftOf="@+id/convert"
。不太确定设备之间的差异,但现在似乎是一致的。
此外,我认为 <requestFocus />