这是我第一次使用“标签活动”。我有一个现有项目,其中包含: 1.主要活动 2.导航抽屉活动
现在,我添加了一个选项卡活动,但它似乎与导航抽屉非常不同。我想做几件事:
在MainActivity上添加一个按钮,然后启动选项卡活动。
这使我出错。
java.lang.NullPointerException:尝试在null对象引用上调用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)' com.example.learnfragment.ui.main.PlaceholderFragment $ 1.onChanged(PlaceholderFragment.java:53) com.example.learnfragment.ui.main.PlaceholderFragment $ 1.onChanged(PlaceholderFragment.java:50)
这对我来说很奇怪,因为当我使用“导航活动”时,我从未使用过占位符,即使我从中学到的教程视频中都使用了占位符。导航抽屉中的所有OnClick动作,都是在“导航活动”中编写的。 为什么标签活动需要占位符??它的功能是什么,我可以删除它吗?为什么本教程使用占位符,但是我尝试将onClicklistenr放入仍可以正常工作的Fragment中?
在View_pager上添加1个按钮
我尝试在Tab_activity.xml中的View_pager上拖动一个按钮,但该按钮没有显示在选项卡活动中。
tab_activity.xml
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TabActivity">
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="551dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
<--Add a Button but it does not show up on the activity-->
<Button
android:text="test"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.v4.view.ViewPager>
PlaceHolder.java
public View onCreateView(
@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_fragment_main, container, false);
final TextView textView = root.findViewById(R.id.section_label);
// below is Line 50
pageViewModel.getText().observe(this, new Observer<String>() {
@Override
// Line 53
// There is no textview in my activity_tab.xml
// Why AS would automatically create this?
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
教程视频显示,他可以将按钮拖动到ViewPager,但我不能。什么