我目前正在尝试制作一个需要在其中一个中有多个选项卡和一个日历的应用程序。我使用片段来执行多个选项卡,但我没有找到如何在其中实现日历。我尝试使用调色板将其添加到 xml 文件中,但在我的 main.xml 文件中出现空错误。
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void androidx.viewpager.widget.ViewPager.setAdapter(androidx.viewpager.widget.PagerAdapter)”
这是我的 row_calendar.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Calendar layer"
/>
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
这是我的 MainActivity.java
package com.example.nootropicsmonitoringapp;
import android.os.Bundle;
import android.os.Handler;
import android.widget.CalendarView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout =findViewById(R.id.tabLayout);
viewPager = findViewById(R.id.view_pager);
getTabs();
}
public void getTabs(){
final ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
new Handler().post(new Runnable() {
@Override
public void run() {
ViewPagerAdapter.addFragment(SubstanceListFragment.getInstance(), "Substance List");
ViewPagerAdapter.addFragment(CalendarFragment.getInstance(), "Calendar");
ViewPagerAdapter.addFragment(RecapFragment.getInstance(), "Recap");
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
});
}
}
知道我可以改变什么来解决这个问题吗?
谢谢你的帮助 !
(我对android studio很陌生,我没有在网上找到任何答案,所以我在这里问)