java如何在Android Studio的片段中添加日历?
我目前正在尝试制作一个应用程序,需要在其中一个选项卡中包含多个选项卡和一个日历。我使用片段来创建多个选项卡,但我没有找到如何在其中实现日历。我试图通过使用调色板将其添加到xml文件中,但在主菜单中出现了一个空错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void 安卓x.viewpager.widget.ViewPager.setAdapter(安卓x.viewpager.widget.PagerAdapter)' on a null object reference
这是我的日历。xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent">
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:layout_centerHorizontal="true"
安卓:layout_centerVertical="true"
安卓:text="Calendar layer"
/>
<CalendarView
安卓:id="@+id/calendarView"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:layout_centerInParent="true" />
</RelativeLayout>
这是我的主要活动。爪哇
package com.example.nootropicsmonitoringapp;
import 安卓.os.Bundle;
import 安卓.os.Handler;
import 安卓.widget.CalendarView;
import 安卓x.annotation.NonNull;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.viewpager.widget.ViewPager;
import com.google.安卓.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);
}
});
}
}
知道我能改变什么来解决这个问题吗
谢谢你的帮助
(我是安卓 studio的新手,在网上找不到任何答案,所以我在这里提问)
# 1 楼答案
要使用View Pager,请先创建如下适配器类:
然后在视图寻呼机上设置此适配器
“设置”选项卡布局和“查看寻呼机”
现在它可以正常工作了