【发布时间】:2019-11-07 10:30:15
【问题描述】:
尝试在空对象引用上调用接口方法。在 Activity 中声明接口并在 Fragment 中实现。当通过单击 Tab 调用实现的方法时产生错误。
活动
private HistoryListener listener;
public interface HistoryListener{
public void onSelect();
}
Activity的TabselectedListener
tabLayout.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch(tab.getPosition()) {
case 0:
break;
case 1:
break;
case 2:
Log.d("Tab", "onTabSelected: " +tab.getPosition());
listener.onSelect();
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
片段
class Fragment implements Activity. HistoryListener{
@Override
public void onSelect() {
}
}
【问题讨论】:
-
从哪里初始化
listener? -
@Md.Asaduzzaman 没找到你
-
您在
addOnTabSelectedListener中使用listener.onSelect();。从哪里设置监听器的值?可能它是 null 这就是你得到异常的原因 -
另外你在 ViewPager 中使用哪个适配器?请添加 ViewPager 和 Tab 设置代码。如果可能,那么适配器
-
@Md.Asaduzzaman 那么如何在活动中初始化界面
标签: android android-activity android-fragmentactivity android-tablayout