Android SwipeRefreshLayout возвращает значение null

#java #android #swiperefreshlayout

#java #Android #swiperefreshlayout

Вопрос:

Я хочу использовать SwipeRefreshLayout для замены данных, но когда я делаю

 mSwipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.refresh);
  

В mSwipeRefreshLayout было значение null.
пример кода:

 <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp">
 <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp">

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:orientation="vertical">

  </LinearLayout>

    </androidx.cardview.widget.CardView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>


import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;


private SwipeRefreshLayout mSwipeRefreshLayout ;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        mSwipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.refresh);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                Toast.makeText(SpisokActivity.this, "Обновление", Toast.LENGTH_SHORT).show();
                mSwipeRefreshLayout.setRefreshing(false);
            }
        });
  

итак, после
mSwipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.refresh) того, как я получу сообщение об ошибке. Я думаю, что причина в том, что mSwipeRefreshLayout имеет значение null.

Ответ №1:

используйте это для findViewById

 setContentView(R.layout.main)
  

Комментарии:

1. Спасибо. Ошибка заключалась в том, что я написал setContentView нерегулярный макет.