【问题标题】:How to fix android error: incompatible types: SliderAdapter cannot be converted to Adapter如何修复android错误:不兼容的类型:SliderAdapter无法转换为Adapter
【发布时间】:2021-08-27 02:41:12
【问题描述】:

我正在尝试在 android studio 中进行板载活动。 但我面临一个问题。 这是我的适配器代码

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.viewpager.widget.PagerAdapter;

public class SliderAdapter extends PagerAdapter {

    Context context;
    LayoutInflater layoutInflater;

    public SliderAdapter(Context context) {
        this.context = context;
    }

    int images[] = {
        R.drawable.interview,
        R.drawable.send,
        R.drawable.click,
        R.drawable.call
    };

    int headings [] = {
        R.string.first_title,
        R.string.second_title,
        R.string.third_title,
        R.string.fourth_title
    };

    int descriptions[] = {
        R.string.first_decs,
        R.string.second_decs,
        R.string.third_decs,
        R.string.fourth_decs
    };

    @Override
    public int getCount() {
        return headings.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == (ConstraintLayout)object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.slides_layout,container,false);

        ImageView imageView = view.findViewById(R.id.slider_image);
        TextView heading = view.findViewById(R.id.slider_heading);
        TextView desc = view.findViewById(R.id.slider_decs);

        imageView.setImageResource(images[position]);
        heading.setText(headings[position]);
        desc.setText(descriptions[position]);

        container.addView(view);

        return super.instantiateItem(container, position);
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((ConstraintLayout)object);
    }
}

这是我的主要活动代码

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;

import android.os.Bundle;
import android.widget.LinearLayout;

public class OnBoardActivity extends AppCompatActivity {

    ViewPager2 viewPager2;
    LinearLayout dots;

    SliderAdapter sliderAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_on_board);
        viewPager2 = findViewById(R.id.slider);
        dots = findViewById(R.id.dots);
        sliderAdapter = new SliderAdapter(this);
        viewPager2.setAdapter(sliderAdapter);
    }
}

但是我遇到了这个错误

请帮我解决这个问题。

【问题讨论】:

    标签: java android xml android-studio android-adapter


    【解决方案1】:

    您需要在 SliderAdapter 类中扩展 ReyclerView 而不是 PagerAdapter。

    查看example

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 1970-01-01
      • 2021-04-27
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 2018-12-02
      • 1970-01-01
      相关资源
      最近更新 更多