首页 > 解决方案 > 如何在 ViewPager2 中实现 Spinner

问题描述

如何在 ViewPager2 中为微调器设置onItemSelected

我已经在 ViewHolder() 中设置了微调器,但无法弄清楚如何实现@Override onItemSelected

ViewPager2

ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewHolder> {
    Context mContext;

    ViewPagerAdapter(Context context) {
        this.mContext = context;
    }

视图持有者

public class ViewHolder extends RecyclerViewViewHolder {
    private Spinner mSpinner;

    ViewHolder(View itemView) {
        mSpinner = itemView.findViewById(R.id.mySpinner);
        ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(mContext, R.array.myArray, android.R.layout.simple_spinner_item);
        spinnerAdapter.setDropDownViewResrouce(android.R.layout.simple_spinner_dropdown_item);
       mSpinner.setAdapter(spinnerAdapter);
       mSpinner.setOnItemSelectedListener((AdapterView.OnItemSelectedListener)mContext);

OnItemSelected ##

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
   Log.d(LOG_TAG, "Spinner Changed");
}

选择新的微调器项目后,我希望在日志中看到“微调器已更改”条目。

标签: androidandroid-viewpagerandroid-spinner

解决方案


按照你说的,

尝试运行应用程序时出现以下错误,错误:方法未覆盖或实现超类型中的方法。

你有没有尝试过

mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
   Log.d(LOG_TAG, "Spinner Changed");
}
});

推荐阅读