0

我有一个带有以下 XML 的 ViewFlipper 请注意,这都包含在 RelativeLayout

<ViewFlipper
    android:id="@+id/flipperIdentView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <include layout="@layout/identification_face"/>
    <include layout="@layout/identification_rfid"/>
    <include layout="@layout/identification_voice"/>
    <include layout="@layout/identification_pill_dispense"/>

</ViewFlipper>

<LinearLayout
    android:id="@+id/linear_button_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:orientation="vertical" >

 <include
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     layout="@layout/test_buttons"
     android:gravity="center" />

</LinearLayout>

LinearLayout 的 ID 为“linear_button_view”。现在在我的片段中,我有代码来确定翻转,并且一切正常。问题是,当我到达脚蹼的索引 3 时,我想隐藏这个布局。我所要做的就是用这个 ID 创建一个字段,然后将 Visibility 设置为 View.Gone。但是当我尝试这样做时,我正在抛出一个 NPE。

在课堂上我有一个:

private View buttonView;

在我的 onCreateView 中,我有以下代码

View v = inflater.inflate(R.layout.pilltransferflipper, container, false);
buttonView = v.findViewById(R.id.linear_button_view);

这是我控制鳍状肢的方法,负责隐藏视图。

private void nextState() {

flipperIndex++;
if (flipperIndex >= flipperPillTransfer.getChildCount()) {
    MainActivity activity = (MainActivity) getActivity();
    activity.stateChange(State.SESSIONFINISHED);
} else {
    flipperPillTransfer.showNext();
        Log.d(TAG, "FLIPPER INDEX: " + flipperIndex);
    if(flipperIndex == 3) {

        buttonView.setVisibility(View.GONE);

        }

    }

}

当我在 FlipperIndex 条件中放置一条 Log.d 消息时,它返回正常,似乎问题出在 buttonView.setVisibility 部分。请记住,我正在使用片段,因此主活动中可用的某些方法可能对我不可用。谢谢!

这是logCat

09-26 10:05:54.381: D/PillTransferFragment(1719): FLIPPER INDEX: 3
09-26 10:05:54.381: D/AndroidRuntime(1719): Shutting down VM
09-26 10:05:54.381: W/dalvikvm(1719): threadid=1: thread exiting with uncaught exception (group=0x40c2b300)
09-26 10:05:54.381: E/AndroidRuntime(1719): FATAL EXCEPTION: main
09-26 10:05:54.381: E/AndroidRuntime(1719): java.lang.NullPointerException
09-26 10:05:54.381: E/AndroidRuntime(1719): at com.example.android.fragments.PillTransferFragment.nextState(PillTransferFragment.java:107)
09-26 10:05:54.381: E/AndroidRuntime(1719): at com.example.android.fragments.PillTransferFragment.onClick(PillTransferFragment.java:64)
09-26 10:05:54.381: E/AndroidRuntime(1719): at android.view.View.performClick(View.java:4084)
4

0 回答 0