【发布时间】:2019-02-25 19:55:56
【问题描述】:
在主片段中我有 viewpager,所以我创建了 view pager 适配器:
public class ParkingViewPagerAdapter extends FragmentPagerAdapter {
private String cookie;
private final String taskInfoString;
public ParkingViewPagerAdapter(FragmentManager fm,String cookie, String taskInfoString) {
super(fm);
this.cookie = cookie;
this.taskInfoString = taskInfoString;
}
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return Fragment1.newInstance(cookie,taskInfoString);
case 1:
return Fragment2.newInstance(cookie,taskInfoString);
}
return null;
}
在片段 1 中,我创建了一个回调并为初始化回调创建了一个 setter:
public interface Callback{
void onRowClicked(Object item);
}
public void setCallback(Callback callback) {
this.callback = callback;
}
现在在创建适配器后的主片段中,我以这种方式获得了片段1:
Fragment1 fragment1 =
(Fragment1) parkingViewPagerAdapter.getItem(0);
fragment1.setCallback(item -> {
Log.i("", "loggggg: ");
});
在调试模式下,第一个回调变量被初始化,但在 fragmet1 中,当我点击我的项目时,我有一个列表视图:
listAdapter.setListener(item ->{
callback.onRowClicked(item);
}}
callback 为空!!!为什么callback是null?如果之前不是null。
parkingViewPagerAdapter.getItem(0) 返回一个新片段?
【问题讨论】: