Я реализовал Horizontal ViewPager с Custom PagerAdapter, как на экране. Чего я пытаюсь добиться, так это получить Id of First item из list . Вот код кода для всего до сих пор.
Адаптер пейджера:
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);
}
}
Элемент быстрого действия
public class QuickActionItem {
private String actionName;
private int actionDrawableImage;
}
Основной фрагмент
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);
Я делюсь только необходимой частью кода для MainFragment, так как он очень длинный и независимо от того, чего я хочу достичь.
Вопросы:
1) Возможно ли, чтобы первый элемент получил какой-либо идентификатор или нет? В моем случае идентификатор элемента «Добавить свойство»
2) Если возможно, то как получить этот идентификатор и смогу ли я вызвать findViewById для этого?
Также дайте мне знать, если вам нужна какая-либо другая информация или код.
Любая помощь будет оценена по достоинству.
QuickActionItem Bean
мы можем установить itemID и получить itemID, как показано ниже, проверьте это один раз ниже - person Ravindra Kushwaha   schedule 23.08.2019