Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将寻呼机适配器与ViewPager2一起使用_Java_Android_Android Adapter_Android Viewpager2 - Fatal编程技术网

Java 将寻呼机适配器与ViewPager2一起使用

Java 将寻呼机适配器与ViewPager2一起使用,java,android,android-adapter,android-viewpager2,Java,Android,Android Adapter,Android Viewpager2,我正在尝试创建欢迎滑块,但调用slideView.setAdapter(sliderAdapter)时出现问题。这是一个错误的说法 所需类型适配器,提供滑块适配器 我使用的是ViewPager2,我使用的是旧的ViewPager适配器。这是个问题吗 package com.example.leblood; import android.content.Context; import android.view.LayoutInflater; import android.view.View; i

我正在尝试创建欢迎滑块,但调用
slideView.setAdapter(sliderAdapter)时出现问题。这是一个错误的说法

所需类型适配器,提供滑块适配器

我使用的是
ViewPager2
,我使用的是旧的
ViewPager
适配器。这是个问题吗

package com.example.leblood;

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;
}

public int[] slide_images = {

        R.drawable.donat,
        R.drawable.request,
        R.drawable.bloodmap

};

public String[] slide_heading = {

  "Donate Blood",
  "Request Blood",
  "Track Requests"

};

public String[] slide_desc = {

        "You can donate at any time just by filling the form",
        "Request any type of blood anywhere in Lebanon",
        "Track blood requests, donation centers and pinpoint their location"

};


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

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


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

    ImageView slideImageView = (ImageView) view.findViewById(R.id.slide_image);
    TextView slideHeading = (TextView) view.findViewById(R.id.slide_heading);
    TextView slideDescription = (TextView) view.findViewById(R.id.slide_desc);

    slideImageView.setImageResource(slide_images[position]);
    slideHeading.setText(slide_heading[position]);
    slideDescription.setText(slide_desc[position]);

    container.addView(view);
    return view;
}

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

ViewPager2
使用
RecyclerView.Adapter
提供其内容。因此,您可以将旧的
ViewPager
与当前适配器一起使用(我不推荐使用),也可以迁移到新的适配器


它们实际上提供了一个全面的视图,所以我建议您看看,尤其是如果您以前从未使用过
RecyclerView

您需要扩展到FragmentPagerAdapter for ViewPager2。您可以使用此示例来实现欢迎页面。
package com.example.leblood;

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

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

public class MainActivity extends AppCompatActivity {

    private ViewPager2 slideView;
    private LinearLayout dots;
    private SliderAdapter sliderAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        slideView = findViewById(R.id.SlideviewPager);
        dots = (LinearLayout) findViewById(R.id.dots);

        sliderAdapter = new SliderAdapter(MainActivity.this);
        slideView.setAdapter(**sliderAdapter**);
    }
}

<LinearLayout
    android:id="@+id/dots"
    android:layout_width="80dp"
    android:layout_height="77dp"
    android:layout_marginTop="6dp"
    android:orientation="horizontal"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/SlideviewPager">

</LinearLayout>

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/SlideviewPager"
    android:layout_width="match_parent"
    android:layout_height="779dp"
    tools:ignore="MissingConstraints">

</androidx.viewpager2.widget.ViewPager2>

</androidx.constraintlayout.widget.ConstraintLayout>