我想在带有toast的活动上显示viewpager2中的所选项目描述。
如何从viewpager获取数据?
我可以显示项目位置,但我想用toast显示所选项目描述。
对不起,我的英语不好。
谢谢你的帮助。
我的代码如下所示;
public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager2 = findViewById(R.id.viewPager2);
PagerAdapter pagerAdapter = new PagerAdapter(fetchDummyData());
viewPager2.setAdapter(pagerAdapter);
viewPager2.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
Toast.makeText(MainActivity.this, "selected item description should be here", Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int state) {
super.onPageScrollStateChanged(state);
}
});
}
private List<PagerM> fetchDummyData() {
List<PagerM> pagerMList = new ArrayList<>();
String[] dummyArr = getResources().getStringArray(R.array.array_str_values);
for (String str : dummyArr) {
PagerM pagerM = new PagerM();
pagerM.setPagerDescription(str);
pagerMList.add(pagerM);
}
return pagerMList;
}
}
array\u str\u值:
<string-array name="array_str_values">
<item>car</item>
<item>red</item>
<item>new</item>
</string-array>
我的适配器:
public class PagerAdapter extends RecyclerView.Adapter {
private List<PagerM> pagerMList;
class PagerViewHolder extends RecyclerView.ViewHolder {
private TextView txtDescription;
public PagerViewHolder(@NonNull View itemView) {
super(itemView);
txtDescription = itemView.findViewById(R.id.txtDescription);
}
}
public PagerAdapter(List<PagerM> pagerMList) {
this.pagerMList = pagerMList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_pager, parent, false);
return new PagerViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
PagerViewHolder viewHolder = (PagerViewHolder) holder;
PagerM pagerM = pagerMList.get(position);
viewHolder.txtDescription.setText(pagerM.getPagerDescription());
}
@Override
public int getItemCount() {
return pagerMList.size();
}
}
PagerM:
public class PagerM {
private String pagerDescription;
public String getPagerDescription() {
return pagerDescription;
}
public void setPagerDescription(String pagerDescription) {
this.pagerDescription = pagerDescription;
}
}
使列表页面列出您的活动字段。
private List<PagerM> pagerMList = new ArrayList<>();
然后在你的onPageSelected方法中按位置获取数据。
public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager2;
private List<PagerM> pagerMList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fetchDummyData();
viewPager2 = findViewById(R.id.viewPager2);
PagerAdapter pagerAdapter = new PagerAdapter(pagerMList);
viewPager2.setAdapter(pagerAdapter);
viewPager2.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
Toast.makeText(MainActivity.this, pagerMList.get(position).getPagerDescription(), Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int state) {
super.onPageScrollStateChanged(state);
}
});
}
private List<PagerM> fetchDummyData() {
String[] dummyArr = getResources().getStringArray(R.array.array_str_values);
for (String str : dummyArr) {
PagerM pagerM = new PagerM();
pagerM.setPagerDescription(str);
pagerMList.add(pagerM);
}
return pagerMList;
}
}
问题内容: 如何从JavaFX中的中获取所选项目? 我目前正在使用 但这并没有给我返回选择模型中的一个选择项。 问题答案: 好的,假设您有一个名为的数据模型类。这条路: 请注意,必须使用a 作为类型参数以避免转换: 要么 选择行后,您将返回一个实例。然后对该实例执行任何您想要的操作。
我目前正在使用 但这并没有返回选择模型中的一个选定项。
它可能得到当前的活动选项卡在火狐使用硒?我创建的应用程序是半自动的(用户正在打开标签,如果他想转储其中一个,他只是点击热键)。 但我有问题,当用户打开多个标签,我需要知道哪一个我应该切换到转储网站。
我正在创建一个屏幕,上面有四个列表。基本上是两对列表,您可以在对中的一个列表上选择行,然后将它们移动到对中的另一个列表。 查看文档,我需要为每个列表提供一个ListSelectionModel来确定选择了哪些行。我将使用[Sel]或[Des]按钮来执行实际的传输。 文档和示例说我需要一个ListSelectionListener,但是,由于在用户单击按钮之前我不会访问模型,所以我实际上需要一个监听
我正在将我的代码从使用< code>androidx.viewpager更新为< code>androidx.viewpager2。我正在翻阅一个不确定数量的片段,这些片段显示了从数据库中检索到的数据记录。加载视图分页器并对我的数据进行分页运行得很好,但是我在删除项目和更新分页器适配器时遇到了一些问题。我想通过调用我的适配器上的< code>removeItem()方法(参见下面的代码)在任何给定
问题内容: 通常,我使用它来返回所选选项的值,但这一次它不起作用。所选标签的ID HTML代码 问题答案: 对于下拉选项,您可能想要这样的东西: 之所以不能解决问题,是因为单击选项不会更改下拉菜单的值,它只是将属性添加到作为下拉菜单的 子 项的所选选项中。