如何从MainActivity将urlimage添加到AdapterViewPager-AndroidX

时间:2019-10-30 12:13:15

标签: java android android-viewpager adapter

我想从AndroidX中的MainActivity将URLimage添加到AdapterViewPager中,但是我不确定如何执行此操作。

这是我的AdapterViewPager.java

public class AdapterViewPagerHot extends PagerAdapter {

private Context mContext;
private LayoutInflater layoutInflater;
/*private Integer[] images = {R.drawable.cat_mermaid_cartoon_grumpy_cat_94004_1280x720,R.drawable.catnrobot,R.drawable.kleptocats,R.drawable.magiccat,R.drawable.flyingcat};*/
public String image_url[] =  new String[]{
        "https://i.chzbgr.com/full/8803531264/hD42E57C6/"
};

public AdapterViewPagerHot(Context context) {
    this.mContext = context;
}

@Override
public int getCount() {
    return image_url.length;
}



@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}



public View vi;
@Override
public Object instantiateItem(ViewGroup container, final int position) {

    layoutInflater = (LayoutInflater) this.mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    vi = layoutInflater.inflate(R.layout.item_viewpagerdisplay, null);

    final Context sContext = mContext;
    ImageView imageView = vi.findViewById(R.id.imageView);
    final ImageView ICONHotViewPagerSaving = vi.findViewById(R.id.ICON_HotViewPagerSaving);
    /*imageView.setImageResource(images[position]);*/
    Glide.with(sContext).load(image_url[position]).into(imageView);


    vi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                Toast.makeText(sContext, "Slide" + (position+1) + "Clicked", Toast.LENGTH_SHORT).show();

        }
    });


    final Boolean[] boollatestnewssaving = {false};
    ICONHotViewPagerSaving.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (boollatestnewssaving[0] == true){
                Toast.makeText(v.getContext(), "Turn Off Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_off);
                boollatestnewssaving[0] = false;
                /*updateSavedNewsSaving("update_newssaving", id, false);*/
            } else if(boollatestnewssaving[0] == false) {
                Toast.makeText(v.getContext(), "Turn On Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_on);
                boollatestnewssaving[0] = true;
                /*updateSavedNewsSaving("update_newssaving", id, true);*/
            }
        }
    });

    ViewPager vp = (ViewPager) container;
    vp.addView(vi, 0);
    return vi;

}



@Override
public void destroyItem(ViewGroup container, int position, Object object) {

    ViewPager vp = (ViewPager) container;
    View view = (View) object;
    vp.removeView(view);

}

}

这是我的MainActivity.java

//ViewPager
public class ViewPagerTask extends TimerTask {
    @Override
    public void run() {
        Activity activity = getActivity();
        if (activity != null) {
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if(viewPager.getCurrentItem() < viewPager.getAdapter().getCount()-1){
                        viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
                    } else {
                        viewPager.setCurrentItem(0);
                    }
                }
            });
        }
    }
}

我不确定如何在AndroidX中将URLimage从MainActivity添加到AdapterViewPager?我该如何解决这个问题?预先谢谢你。

// UPDATED //

AdapterViewPagerHot adapterViewPagerHotX = new AdapterViewPagerHot(getActivity());
    adapterViewPagerHotX.setUrls(new String[]{"https://i.chzbgr.com/full/8803531264/hD42E57C6/"});

AdapterViewPager.java

public class AdapterViewPagerHot extends PagerAdapter {

private Context mContext;
private LayoutInflater layoutInflater;
/*private Integer[] images = {R.drawable.cat_mermaid_cartoon_grumpy_cat_94004_1280x720,R.drawable.catnrobot,R.drawable.kleptocats,R.drawable.magiccat,R.drawable.flyingcat};*/
public String image_url[];
public AdapterViewPagerHot(Context context) {
    this.mContext = context;
}




public void setUrls(String[] list){
    this.image_url = list;
}

@Override
public int getCount() {
    return image_url.length;
}


@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}



public View vi;
@Override
public Object instantiateItem(ViewGroup container, final int position) {

    layoutInflater = (LayoutInflater) this.mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    vi = layoutInflater.inflate(R.layout.item_viewpagerdisplay, null);

    final Context sContext = mContext;
    ImageView imageView = vi.findViewById(R.id.imageView);
    final ImageView ICONHotViewPagerSaving = vi.findViewById(R.id.ICON_HotViewPagerSaving);
    /*imageView.setImageResource(images[position]);*/
    Glide.with(sContext).load(image_url[position]).into(imageView);


    vi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                Toast.makeText(sContext, "Slide" + (position+1) + "Clicked", Toast.LENGTH_SHORT).show();

        }
    });


    final Boolean[] boollatestnewssaving = {false};
    ICONHotViewPagerSaving.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (boollatestnewssaving[0] == true){
                Toast.makeText(v.getContext(), "Turn Off Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_off);
                boollatestnewssaving[0] = false;
                /*updateSavedNewsSaving("update_newssaving", id, false);*/
            } else if(boollatestnewssaving[0] == false) {
                Toast.makeText(v.getContext(), "Turn On Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_on);
                boollatestnewssaving[0] = true;
                /*updateSavedNewsSaving("update_newssaving", id, true);*/
            }
        }
    });

    ViewPager vp = (ViewPager) container;
    vp.addView(vi, 0);
    return vi;

}



@Override
public void destroyItem(ViewGroup container, int position, Object object) {

    ViewPager vp = (ViewPager) container;
    View view = (View) object;
    vp.removeView(view);

}

}

遇到错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.indofun.android.indojoy.Adapters.Adapter_ViewPagerHot.AdapterViewPagerHot.setUrls(java.lang.String[])' on a null object reference
    at com.indofun.android.indojoy.Support.TabHotFragment.onCreateView(TabHotFragment.java:117)

// UPDATED2 // AdapterViewPager.java

public class AdapterViewPagerHot extends PagerAdapter {

private Context mContext;
private LayoutInflater layoutInflater;
/*private Integer[] images = {R.drawable.cat_mermaid_cartoon_grumpy_cat_94004_1280x720,R.drawable.catnrobot,R.drawable.kleptocats,R.drawable.magiccat,R.drawable.flyingcat};*/
public String image_url[] =  new String[]{
        "https://i.chzbgr.com/full/8803531264/hD42E57C6/"
};

public AdapterViewPagerHot(Context context) {
    this.mContext = context;
}

@Override
public int getCount() {
    return image_url.length;
}

public void setUrls(String[] list){
    this.image_url = list;
}



@Override
public boolean isViewFromObject(View view, Object object) {
    return view == object;
}



public View vi;
@Override
public Object instantiateItem(ViewGroup container, final int position) {

    layoutInflater = (LayoutInflater) this.mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    vi = layoutInflater.inflate(R.layout.item_viewpagerdisplay, null);

    final Context sContext = mContext;
    ImageView imageView = vi.findViewById(R.id.imageView);
    final ImageView ICONHotViewPagerSaving = vi.findViewById(R.id.ICON_HotViewPagerSaving);
    /*imageView.setImageResource(images[position]);*/
    Glide.with(sContext).load(image_url[position]).into(imageView);


    vi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                Toast.makeText(sContext, "Slide" + (position+1) + "Clicked", Toast.LENGTH_SHORT).show();

        }
    });


    final Boolean[] boollatestnewssaving = {false};
    ICONHotViewPagerSaving.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (boollatestnewssaving[0] == true){
                Toast.makeText(v.getContext(), "Turn Off Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_off);
                boollatestnewssaving[0] = false;
                /*updateSavedNewsSaving("update_newssaving", id, false);*/
            } else if(boollatestnewssaving[0] == false) {
                Toast.makeText(v.getContext(), "Turn On Saved News ", Toast.LENGTH_SHORT).show();
                ICONHotViewPagerSaving.setImageResource(R.drawable.saved_on);
                boollatestnewssaving[0] = true;
                /*updateSavedNewsSaving("update_newssaving", id, true);*/
            }
        }
    });

    ViewPager vp = (ViewPager) container;
    vp.addView(vi, 0);
    return vi;

}



@Override
public void destroyItem(ViewGroup container, int position, Object object) {

    ViewPager vp = (ViewPager) container;
    View view = (View) object;
    vp.removeView(view);

}

}

// TabHotActivity.java

public class TabHotFragment extends Fragment {
//SetupMainActivity
public static MainActivity mainActivity_;

//ADS GOOGLE Initialize Ads Banner
private AdView mAdView;


//AutoSlide
/*FlipperLayout flipper;*/

//ViewPager
ViewPager viewPager;
LinearLayout sliderDotspanel;
private int dotscount;
private ImageView[] dots;
AdapterViewPagerHot adapterViewPagerHot;

//1
ArrayList<ModelSectionHotTrendingNews> modelSectionHotTrendingNews = new ArrayList<ModelSectionHotTrendingNews>();
AdapterSectionHotTrendingNews adapterSectionHotTrendingNews;
//2
ArrayList<ModelSectionHotLatestNews> modelSectionHotLatestNews = new ArrayList<ModelSectionHotLatestNews>();
AdapterSectionHotLatestNews adapterSectionHotLatestNews;
//3
ArrayList<ModelSectionHotFollowing> modelSectionHotFollowings = new ArrayList<ModelSectionHotFollowing>();
AdapterSectionHotFollowing adapterSectionHotFollowing;





//ModelData
List<ModelSingleHotTrendingNews> modelSingleHotTrendingNews;
List<ModelSingleHotLatestNews> modelSingleHotLatestNews;
List<ModelSingleHotFollowing> modelSingleHotFollowings;




//EVENT BUS
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MainActivity.EventStoredHighlight event) {
    getHighlightMainActivity(event.SendTotalThread, event.SendDummyID, event.SendDummyTitle, event.SendDummyPublishTime, event.SendDummyImageOri, event.SendDummyShortDescription);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MainActivity.EventStoredTrending event) {
    getTrendingMainActivity(event.SendTotalThread, event.SendDummyID, event.SendDummyTitle, event.SendDummyPublishTime, event.SendDummyImageOri, event.SendDummyShortDescription);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MainActivity.EventStoredLatest event) {
    getLatestMainActivity(event.SendTotalThread, event.SendDummyID, event.SendDummyTitle, event.SendDummyPublishTime, event.SendDummyImageOri, event.SendDummyShortDescription);
}
public void getHighlightMainActivity(int ReceivedTotalThread, int ReceivedDummyID, String ReceivedDummyTitle, String ReceivedDummyPublishTime, String ReceivedDummyImageOri, String ReceivedDummyShortDescription){
    Toast.makeText(getActivity(), "IniHighlightXTotalThread="+ReceivedTotalThread+", DummyID="+ReceivedDummyID+", DummyTitle="+ReceivedDummyTitle+", DummyPublishTime="+ReceivedDummyPublishTime+", DummyImageOri="+ReceivedDummyImageOri+", DummyShortDescription"+ReceivedDummyShortDescription, Toast.LENGTH_LONG).show();
    AdapterViewPagerHot adapterViewPagerHot = new AdapterViewPagerHot(getActivity());
}
public void getTrendingMainActivity(int ReceivedTotalThread, int ReceivedDummyID, String ReceivedDummyTitle, String ReceivedDummyPublishTime, String ReceivedDummyImageOri, String ReceivedDummyShortDescription){
    Toast.makeText(getActivity(), "IniTrendingXTotalThread="+ReceivedTotalThread+", DummyID="+ReceivedDummyID+", DummyTitle="+ReceivedDummyTitle+", DummyPublishTime="+ReceivedDummyPublishTime+", DummyImageOri="+ReceivedDummyImageOri+", DummyShortDescription"+ReceivedDummyShortDescription, Toast.LENGTH_LONG).show();
    AdapterViewPagerHot adapterViewPagerHot = new AdapterViewPagerHot(getActivity());
}
public void getLatestMainActivity(int ReceivedTotalThread, int ReceivedDummyID, String ReceivedDummyTitle, String ReceivedDummyPublishTime, String ReceivedDummyImageOri, String ReceivedDummyShortDescription){
    Toast.makeText(getActivity(), "IniLatestXTotalThread="+ReceivedTotalThread+", DummyID="+ReceivedDummyID+", DummyTitle="+ReceivedDummyTitle+", DummyPublishTime="+ReceivedDummyPublishTime+", DummyImageOri="+ReceivedDummyImageOri+", DummyShortDescription"+ReceivedDummyShortDescription, Toast.LENGTH_LONG).show();
    AdapterViewPagerHot adapterViewPagerHot = new AdapterViewPagerHot(getActivity());
}


View v;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.fragment_tabhot, container, false);

    //Clear Model that Created before When Fragment Opened Again
    modelSectionHotLatestNews.clear();
    modelSectionHotTrendingNews.clear();
    modelSectionHotFollowings.clear();

    /*setContentView(R.layout.activity_main);*/
    String[] strArray = new String[]{"https://scx1.b-cdn.net/csz/news/800/2019/1-nasastessmis.jpg"};
    adapterViewPagerHot.setUrls(strArray);





    /*//AA
    //Autoslide
    flipper=v.findViewById(R.id.flipper);
    setLayout();*/

    //ViewPager
    viewPager = (ViewPager) v.findViewById(R.id.viewPager);
    sliderDotspanel = (LinearLayout) v.findViewById(R.id.SliderDots);
    adapterViewPagerHot = new AdapterViewPagerHot(getActivity());
    viewPager.setAdapter(adapterViewPagerHot);
    dotscount = adapterViewPagerHot.getCount();
    dots = new ImageView[dotscount];

    for(int i = 0; i < dotscount; i++){
        dots[i] = new ImageView(getActivity());
        dots[i].setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.nonactive_dot));
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        params.setMargins(8, 0, 8, 0);
        sliderDotspanel.addView(dots[i], params);
    }
    dots[0].setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.active_dot));
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
        @Override
        public void onPageSelected(int position) {
            for(int i = 0; i< dotscount; i++){
                dots[i].setImageResource(R.drawable.nonactive_dot);
            }
            dots[position].setImageResource(R.drawable.active_dot);
        }
        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
    Timer timer = new Timer();
    //This is going to start after 2 second and will repeat on every 8 seconds time interval.
    timer.scheduleAtFixedRate(new ViewPagerTask(), 5000, 8000);


    //1
    createDummyData1();

    RecyclerView RecyclerViewSingleHotTrendingNews = v.findViewById(R.id.RecyclerView_Single_HotTrendingNews);
    RecyclerViewSingleHotTrendingNews.setHasFixedSize(true);
    adapterSectionHotTrendingNews = new AdapterSectionHotTrendingNews(getActivity(), modelSectionHotTrendingNews);
    RecyclerViewSingleHotTrendingNews.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
    RecyclerViewSingleHotTrendingNews.setAdapter(adapterSectionHotTrendingNews);
    //Optimized
    RecyclerViewSingleHotTrendingNews.setHasFixedSize(true);
    RecyclerViewSingleHotTrendingNews.setItemViewCacheSize(20);



    //2
    createDummyData2();

    RecyclerView RecyclerViewSingleHotLatestNews = v.findViewById(R.id.RecyclerView_Single_HotLatestNews);
    RecyclerViewSingleHotLatestNews.setHasFixedSize(true);
    adapterSectionHotLatestNews = new AdapterSectionHotLatestNews(getActivity(), modelSectionHotLatestNews);
    RecyclerViewSingleHotLatestNews.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
    RecyclerViewSingleHotLatestNews.setAdapter(adapterSectionHotLatestNews);
    //Optimized
    RecyclerViewSingleHotLatestNews.setHasFixedSize(true);
    RecyclerViewSingleHotLatestNews.setItemViewCacheSize(20);

    //3
    createDummyData3();

    RecyclerView RecyclerViewSingleHotFollowing = v.findViewById(R.id.RecyclerView_Single_HotFollowing);
    RecyclerViewSingleHotFollowing.setHasFixedSize(true);
    adapterSectionHotFollowing = new AdapterSectionHotFollowing(getActivity(), modelSectionHotFollowings);
    RecyclerViewSingleHotFollowing.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
    RecyclerViewSingleHotFollowing.setAdapter(adapterSectionHotFollowing);
    //Optimized
    RecyclerViewSingleHotFollowing.setHasFixedSize(true);
    RecyclerViewSingleHotFollowing.setItemViewCacheSize(20);



    String y = getString(R.string.AdmobID_Core);

    //ADS GOOGLE Kode Inti
    MobileAds.initialize(getActivity(), getString(R.string.AdmobID_Core));
    mAdView = v.findViewById(R.id.adView);

        AdRequest adRequest = new AdRequest.Builder().build();

    /*AdRequest adRequestBanner = new AdRequest.Builder()
            .addTestDevice("2019091717123202457")
            .build();*/
    mAdView.loadAd(adRequest);


    mAdView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            Toast.makeText(getActivity(),"RKAd Loaded",Toast.LENGTH_SHORT).show();
            // Code to be executed when an ad finishes loading.
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            Toast.makeText(getActivity(),"Ad Failed to load / Doesn't get Ads Right Now",Toast.LENGTH_SHORT).show();
            // Code to be executed when an ad request fails.
        }

        @Override
        public void onAdOpened() {
            Toast.makeText(getActivity(),"Ad Opened",Toast.LENGTH_SHORT).show();
            // Code to be executed when an ad opens an overlay that
            // covers the screen.
        }

        @Override
        public void onAdLeftApplication() {
            Toast.makeText(getActivity(),"Ad Left Application",Toast.LENGTH_SHORT).show();
            // Code to be executed when the user has left the app.
        }

        @Override
        public void onAdClosed() {
            Toast.makeText(getActivity(),"RKAd Closed",Toast.LENGTH_SHORT).show();
            // Code to be executed when when the user is about to return
            // to the app after tapping on an ad.
        }
    });


    //INI COBA HIT HIGHLIGHT
    //SetDataProfile
    Button BTNHighlight;
    BTNHighlight = v.findViewById(R.id.BTN_Highlight);
    BTNHighlight.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mainActivity_ != null) {
                mainActivity_.rncryptorALLDEWA("Highlight");
            }
        }
    });
    //INI COBA HIT TRENDING
    //SetDataProfile
    Button BTNTrending;
    BTNTrending = v.findViewById(R.id.BTN_Trending);
    BTNTrending.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mainActivity_ != null) {
                mainActivity_.rncryptorALLDEWA("Trending");
            }
        }
    });
    //INI COBA HIT LATEST
    //SetDataProfile
    Button BTNLatest;
    BTNLatest = v.findViewById(R.id.BTN_Latest);
    BTNLatest.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mainActivity_ != null) {
                mainActivity_.rncryptorALLDEWA("Latest");
            }
        }
    });


   /* ViewPager vp = v.findViewById(R.id.ViewPager);
    vp.addView(vi, 0);
    final AdapterViewPagerHot adapterViewPagerHot = new AdapterViewPagerHot(getActivity());
    adapterViewPagerHot.vi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getActivity(), "Slide" + (adapterViewPagerHot.getCount()+1) + "Clicked", Toast.LENGTH_SHORT).show();
        }
    });*/



    return v;
}





/*//Autoslide
private void setLayout(){
    String url[] =  new String[]{
            "https://i.chzbgr.com/full/8803531264/hD42E57C6/",
            "https://i.pinimg.com/originals/d2/fc/5a/d2fc5ab22b9b9d13320b3a8be48625ad.jpg",
            "https://i.ytimg.com/vi/5rOtNmdKgsE/maxresdefault.jpg"
    };
    for(int i=0; i<url.length; i++){
        FlipperView view = new FlipperView(getActivity().getBaseContext());
        view.setImageUrl(url[i])
                .setDescription("Gambar"+ (i+1));
        flipper.addFlipperView(view);
        view.setOnFlipperClickListener(new FlipperView.OnFlipperClickListener() {
            @Override
            public void onFlipperClick(FlipperView flipperView) {
                Toast.makeText(getActivity(), ""+(flipper.getCurrentPagePosition()+1), Toast.LENGTH_SHORT).show();
            }
        });
    }
}*/

//ViewPager
public class ViewPagerTask extends TimerTask {
    @Override
    public void run() {
        Activity activity = getActivity();
        if (activity != null) {
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if(viewPager.getCurrentItem() < viewPager.getAdapter().getCount()-1){
                        viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
                    } else {
                        viewPager.setCurrentItem(0);
                    }
                }
            });
        }
    }
}



/*public void createDummyData() {
    for (int i = 1; i <= 5; i++) {

        SectionDataModel dm = new SectionDataModel();

        dm.setHeaderTitle("Section " + i);

        ArrayList<SingleItemModel> singleItem = new ArrayList<SingleItemModel>();
        for (int j = 0; j <= 7; j++) {
            singleItem.add(new SingleItemModel("Item " + j, "URL " + j));
        }

        dm.setAllItemsInSection(singleItem);

        allSampleData.add(dm);

    }
}*/

public void createDummyData1() {
    ModelSectionHotTrendingNews modelSectionHotTrendingNewsX = new ModelSectionHotTrendingNews();
    modelSectionHotTrendingNewsX.setHeaderTitle("TRENDING NEWS");

    ArrayList<ModelSingleHotTrendingNews> modelSingleHotTrendingNews = new ArrayList<ModelSingleHotTrendingNews>();
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(1, "20 Mei 2019", "Citing personal differences with his human co-hosts, Watson announced it would be leaving the show last Friday.", R.drawable.magiccat, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(2, "21 Mei 2019", "They developed superpowers after years of drinking from a lead-poisoned water supply. But just having incredible abilities doesn't make them superheroes. Not yet.", R.drawable.cat_mermaid_cartoon_grumpy_cat_94004_1280x720, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(3, "22 Mei 2019", "Facing increased competition from niche restaurants targeting millennials, the Echo Park Chipotle announced today it would become the nation’s first “Rat Cafe,”", R.drawable.kleptocats, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(4, "23 Mei 2019", "The world rejoiced today as The Apprentice's Donald J. Trump brokered a deal with all nations that would create everlasting peace and prospetiy", R.drawable.catnrobot, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(5, "24 Mei 2019", "Portsmouth, Australia. Alcohol Quality Inspectorate (AQI) was alarmed after Harry Taylor (23), reported a reportedly poisoned alcohol batch", R.drawable.flyingcat, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(6, "25 Mei 2019", "A popular local beer produce was almost forced to stop bottling beer in their branch in Portsmouth", R.drawable.bubblesthecat, false, "x53535", "No Error"));
    modelSingleHotTrendingNews.add(new ModelSingleHotTrendingNews(7, "26 Mei 2019", "The man went to a house party with his friends and did not waive from drinking alcohol. After drinking one beer", R.drawable.catnrobot, false, "x53535", "No Error"));


    modelSectionHotTrendingNewsX.setAllItemsInSection(modelSingleHotTrendingNews);
    modelSectionHotTrendingNews.add(modelSectionHotTrendingNewsX);
}




    modelSectionHotLatestNewsX.setAllItemsInSection(modelSingleHotLatestNews);
    modelSectionHotLatestNews.add(modelSectionHotLatestNewsX);
}








//EVENTBUS
@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

@Override
public void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
}

}

错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.indofun.android.indojoy.Adapters.Adapter_ViewPagerHot.AdapterViewPagerHot.setUrls(java.lang.String[])' on a null object reference
    at com.indofun.android.indojoy.Support.TabHotFragment.onCreateView(TabHotFragment.java:131)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
    at 

2 个答案:

答案 0 :(得分:1)

您可以在适配器中为此创建一个方法

public class AdapterViewPagerHot extends PagerAdapter {

private String [] urlList;

...

  public void setUrls(String[] list){
    this.urlList = list;
  }   

...
}

您可以在活动中在适配器实例上调用此方法:

viewPager.setUrls(/*your URL list*/);

答案 1 :(得分:0)

我将setImageUrl放在Adapter中,因为如果我尝试执行其他功能,它将首先崩溃

public AdapterViewPagerHot(Context context, String[] list) {
    this.mContext = context;
    this.image_url = list;
}