关于button.setEnabled(false)的Android崩溃

时间:2015-11-01 20:34:18

标签: java android xml crash

好的,所以我终于找到了问题的根源。在经过一系列测试并尝试不同的事情后,我注意到我放了代码

button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
在onCreateView中

,它会在启动时崩溃。这是在我的menu1_Fragment.java中,是我的第一个片段。在我的课堂上,我开始定义我的按钮。

Button button1;
Button button2;
Button button3;
Button button4;

然后我在onCreateView上做的第一件事是运行函数setButton();

    public void setButton() {
            button1 = (Button) rootview.findViewById(R.id.upgbutton);
            button2 = (Button) rootview.findViewById(R.id.upgbutton1);
            button3 = (Button) rootview.findViewById(R.id.upgbutton2);
            button4 = (Button) rootview.findViewById(R.id.upgbutton3);
        }

这里发生的是这些按钮实际上在我的menu2_layout.xml中,这是我的第二个片段,但是我的rootview允许我找到它。然后我在下面定义了我的按钮后,我将所有按钮设置为false,如第一段代码所示,因为我不希望用户点击按钮。这是我发现它在开始时崩溃的地方。这是我按钮的代码。

<LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:weightSum="4">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_state2_xml"
            android:id="@+id/upgbutton"
            android:layout_gravity="center_horizontal" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_state3_xml"
            android:id="@+id/upgbutton1"
            android:layout_gravity="center_horizontal" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_state4_xml"
            android:id="@+id/upgbutton2"
            android:layout_gravity="center_horizontal" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_state5_xml"
            android:id="@+id/upgbutton3"
            android:layout_gravity="center_horizontal" />


            </LinearLayout>

我给自己的所有按钮都有自己的selector_state,因为这是我最初认为的问题所在。这是我的选择器的代码。

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button"></item>
    <item android:drawable="@drawable/buttonclick" android:state_pressed="true"></item>
    <item android:drawable="@drawable/buttongray" android:state_enabled="false"></item>

</selector>

如果你可以请求帮助我已经被困在这个问题很长一段时间并发了更多帖子然后我需要,但我似乎无法解决它。此外,我无法访问我的日志,因为我遇到技术问题,当我尝试点击Android监视器并且我的应用程序正在运行时,基本上冻结了我的android工作室。

如果所有这些都不够,我也发布在github

https://github.com/BeniReydman/Slide_Menu-Slide_Menu

我会尝试解决尽可能多的问题,但我是新手,这是我的第一个应用程序。我甚至没有这样做超过一个星期,所以请忍受它。

1 个答案:

答案 0 :(得分:1)

  

这里发生的是这些按钮实际上在我的   menu2_layout.xml这是我的第二个片段,但我的rootview允许我   找到它。

我通常会说发布错误,但这引起了我的反对,

rootview是menu1_layou.xml,按钮位于menu2_layout.xml中。 因此,您需要在包含您要查找的ID的视图上调用findViewById()。

是的,代码将编译,您的IDE不会抛出任何错误,但这并不意味着它将起作用。

如果您在解决此问题后仍然遇到问题,请发布崩溃日志。