I have implemented Horizontal ViewPager with Custom PagerAdapter like attached in screen. What I'm trying to achieve is to get Id of First item from list . Here is code code for everything till now .
PagerAdapter:
private static final String TAG = ViewPagerAdapter.class.getSimpleName();
private Context context;
private LayoutInflater layoutInflater;
private ArrayList<QuickActionItem> quickActionItems;
public ViewPagerAdapter(Context context, ArrayList<QuickActionItem> items) {
this.context = context;
this.quickActionItems = items;
}
@Override
public float getPageWidth(int position) {
return 0.25f;
}
@Override
public int getCount() {
return quickActionItems.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.item_page_slide, null);
ImageView actionImage = view.findViewById(R.id.img_action);
TextView actionText = view.findViewById(R.id.title_action_value);
actionImage.setImageResource(quickActionItems.get(position).getActionDrawableImage());
actionText.setText(quickActionItems.get(position).getActionName());
ViewPager vp = (ViewPager) container;
vp.addView(view, 0);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (quickActionItems.get(position).getActionName().equals(context.getString(R.string.quick_add_property))) {
Log.d(TAG, "Add Property ");
} else if (quickActionItems.get(position).getActionName().equals(context.getString(R.string.quick_add_tenant))) {
Log.d(TAG, "Add Tenant ");
context.startActivity(targetIntent);
} else if (quickActionItems.get(position).getActionName().equals(context.getString(R.string.quick_add_income))) {
Log.d(TAG, "Add Income ");
context.startActivity(targetIntent);
} else if (quickActionItems.get(position).getActionName().equals(context.getString(R.string.quick_add_expense))) {
Log.d(TAG, "Add Expense ");
}
}
});
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
ViewPager vp = (ViewPager) container;
View view = (View) object;
vp.removeView(view);
}
}
QuickActionItem
public class QuickActionItem {
private String actionName;
private int actionDrawableImage;
}
MainFragment
quickActionPager = fragmentView.findViewById(R.id.quick_actions_pager);
sliderDotsPanel = fragmentView.findViewById(R.id.SliderDots);
quickActionItems = new ArrayList<>();
quickActionItems.add(new QuickActionItem(getString(R.string.quick_add_property), R.drawable.ic_add_property));
quickActionItems.add(new QuickActionItem(getString(R.string.quick_add_tenant), R.drawable.ic_add_tenant));
quickActionItems.add(new QuickActionItem(getString(R.string.quick_add_income), R.drawable.ic_add_income));
quickActionItems.add(new QuickActionItem(getString(R.string.quick_add_expense), R.drawable.ic_add_expense));
viewPagerAdapter = new ViewPagerAdapter(getActivity(), quickActionItems);
quickActionPager.setAdapter(viewPagerAdapter);
I'm sharing only necessary part of code for MainFragment as it's very long & regardless of what I want to achieve.
Questions:
1) Is it possible that first Item get any sort of ID or not ? In my case Id for "Add Property" item
2) If possible then how to get that Id & Will I able to call findViewById on that ?
Also let me know if you need any other information or code.
Any help would be appreciated.