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.