Android,设置点击列表错误,我看不出有什么问题



我不断收到以下错误:

 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ScrollView.setVisibility(int)' on a null object reference

单击按钮时,我想要scrollview,并且是要隐藏的内容。

但我看不到怎么了。我将按钮连接到scrollview,但它不起作用。这是片段中的我的按钮代码:

 public class SavedBroad extends Fragment {
Button activityButtonPhoto;
public ScrollView broadScroll;

Button activityButtonBroad;
public ScrollView photoScroll;
View rootView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
     rootView = inflater.inflate(R.layout.activity_saved_broad_tabbar, container, false);

     broadScroll = rootView.findViewById(R.id.BroadScrollView); 
   // photoScroll = rootView.findViewById(R.id.PhotoScrollView);  

  //  broadScroll= getActivity().findViewById(R.id.BroadScrollView); 
  // photoScroll=getActivity().findViewById(R.id.PhotoScrollView);


    activityButtonPhoto= rootView.findViewById(R.id.PhotoVid);
    activityButtonPhoto.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            broadScroll.setVisibility(View.INVISIBLE);
        }
    });
    return rootView;
    }

   } 

这是我的XML文件:

<Button
    android:id="@+id/PhotoVid"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="6dp"
    android:background="@android:color/holo_green_dark"
    android:text="PhotoVid"
    app:layout_constraintHorizontal_bias="0.155"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<Button
    android:id="@+id/broad"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="6dp"
    android:background="@android:color/holo_red_dark"
    android:text="Broadcast"
    app:layout_constraintHorizontal_bias="0.741"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<ScrollView
    android:id="@+id/BroadScrollView"
    android:layout_width="393dp"
    android:layout_height="505dp"
    android:layout_marginBottom="144dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:background="@android:color/holo_red_dark"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/broad"
    app:layout_constraintVertical_bias="0.0">
    <LinearLayout
        android:id="@+id/BroadLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" />
</ScrollView>
<ScrollView
    android:id="@+id/PhotoScrollView"
    android:layout_width="0dp"
    android:layout_height="433dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:background="@android:color/holo_green_dark"
    app:layout_constraintBottom_toBottomOf="@+id/BroadScrollView"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginTop="8dp"
    app:layout_constraintVertical_bias="1.0"
    app:layout_constraintTop_toBottomOf="@+id/broad"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp">
    <LinearLayout
        android:id="@+id/PhotoVidLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" />
</ScrollView>

我不明白为什么要隐藏scrollview的按钮给我问题。

在这里您要获取按钮:

activityButtonPhoto= rootView.findViewById(R.id.PhotoVid);

如果您在此行后检查,activityButtonPhotonull,这意味着在布局activity_saved_broad_tabbar中未找到ID PhotoVid的按钮,该按钮已夸大了rootView

当您尝试设置OnClickListener时,它会引发Null指针异常。

检查ID已正确拼写,布局包含此ID。

这是一个拼写错误。

在您的布局XML中,您的scrollView是android:id="@+id/BroadScrollView",但您使用的是R.id.BroadcastScrollView

So Android在rootview中找不到此scrollview,因此broadScroll将是null,并且导致NullPoInterException。

嗨,您可以尝试一下吗?

public class SavedBroad extends Fragment 
{
  Button activityButtonPhoto;
  public ScrollView broadScroll;

  Button activityButtonBroad;
  public ScrollView photoScroll;

  public void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
  }
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
  {
       View rootView = inflater.inflate(R.layout.activity_saved_broad_tabbar, container, false);

       broadScroll = rootView.findViewById(R.id.BroadScrollView); 
     // photoScroll = rootView.findViewById(R.id.PhotoScrollView);  

    //  broadScroll= getActivity().findViewById(R.id.BroadScrollView); 
    // photoScroll=getActivity().findViewById(R.id.PhotoScrollView);


      activityButtonPhoto= rootView.findViewById(R.id.PhotoVid);
      activityButtonPhoto.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              //broadScroll.setVisibility(View.INVISIBLE);
              broadScroll.setVisibility(View.GONE);
          }
      });
      return rootView;
  }

} 

相关内容

最新更新