我试图将web url的地址从pageradapter传递给我的片段,但在那个过程中我得到一个空对象引用错误。 这是我的pageradapter
public class TabPagerAdapter extends FragmentStatePagerAdapter
{
int tabCount;
public TabPagerAdapter(FragmentManager fm, int numberOfTabs)
{
super(fm);
this.tabCount = numberOfTabs;
}
@Override
public Fragment getItem(int position)
{
switch (position)
{
case 0:
Yahoo tab1 = new Yahoo();
Yahoo.newInstance("https://www.yahoo.com");
return tab1;
default:
return null;
}
@Override
public int getCount()
{
return tabCount;
}
}
这是我的片段。我不知道为什么我不能让它工作。我试图在onCreate方法中也使用相同的东西,但错误仍然存在。
public class Yahoo extends Fragment {
private WebView webView;
private ProgressBar progressBar1;
private SwipeRefreshLayout mSwipeRefreshLayout1;
public Yahoo() {
// Required empty public constructor
}
public static Yahoo newInstance(String webUrl) {
Yahoo yahoo= new Yahoo();
//set arguments
Bundle args = new Bundle();
args.putString("website", webUrl);
yahoo.setArguments(args);
return Yahoo;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_tab, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
//getting error here when calling back arguments
final String url = getArguments().getString("website");
webView.loadUrl(url);
}
答案 0 :(得分:1)
您将返回一个新片段,而不是newInstance。
试试这个:
case 0:
return Yahoo.newInstance("https://www.yahoo.com");