简体   繁体   中英

Calling activity method to implement view pager fragment from adapter

I have to call this initViewPagerandTabs() method from my activity in my Adapter. This method implements sliding tab layouts. It works fine when called by another activity or fragment but not from base adapter.

Is there a simple way I can call my method from adapter class. Please help.

Adapter Class

public View getView(int position, View convertView, ViewGroup parent) {

View myview=convertView;

    if (myview == null) {
            Log.d("network frag list"," convertView null ");
            LayoutInflater inflater = (LayoutInflater)
                    context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            myview = inflater.inflate(R.layout.activity_post, null);
        myview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(context, Post.class);
                context.startActivity(intent);
                   }
        });

Post.Class

 protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_post);

         initViewPagerAndTabs();

    }

    public void initViewPagerAndTabs() {
        final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);

        PostActivityPagerAdapter adapter = new PostActivityPagerAdapter(getSupportFragmentManager(), Titles, Numboftabs);

        viewPager.setAdapter(adapter);
        SlidingTabLayout tabLayout = (SlidingTabLayout) findViewById(R.id.tabLayout);

        tabLayout.setDistributeEvenly(false);
        tabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return getResources().getColor(R.color.ark_green);
            }
        });


        tabLayout.setViewPager(viewPager);
    }}

You can parse a reference to your activity when you create your adapter (by modify the adapter constructor). Then use that reference to call the methods.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM