Android 4.0.4设备上的按钮没有文字

时间:2015-12-19 17:41:10

标签: android android-fragments android-button

我一直在Android 5.1.1上开发应用程序,一切正常。但是当我在4.0.4设备上测试时,没有任何按钮显示任何文本。知道为什么会这样吗?

每个按钮都是片段的UI。这是名为just_a_button.xml

的布局
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/button_copper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#fff"
    android:visibility="gone"/>

这是片段如何设置视图的示例:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    final Button button = (Button) inflater.inflate(R.layout.just_a_button, container, false);
    button.setText(R.string.member_info);
    // set click listener omitted
    return button;
}

按钮的可见性由事件接收器控制。按钮显示为预期,其单击侦听器工作。它上面没有任何文字。

编辑:解决方法是将按钮放在布局中。我仍然很好奇这个要求是否曾被记录过,以及当按钮是根视图时,为什么只有文本似乎受到影响。

1 个答案:

答案 0 :(得分:0)

而不是这个

button.setText(R.string.member_info);

使用

button.setText(getActivity().getResources().getString(R.string.member_info));

您直接定义字符串资源,但setText()string作为参数。

修改 改变你的xml如下,然后findviewbyid为你的按钮

<?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:orientation="vertical" >

    <Button 
    android:id="@+id/Mybutton"
    style="@style/button_copper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#fff"
    android:visibility="gone"/>

</LinearLayout>

在您的片段onCreateView()中执行以下操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.just_a_button, container, false);
    Button button = (Button) view.findViewById(R.id.Mybutton);
    button.setText(getActivity().getResources().getString(R.string.member_info));
    // set click listener omitted
    return view;
}