java单击图像滑块并转到Android Studio中的另一个活动
我是Android Studio的初学者,我希望图像可以点击,这样我就可以跳转到另一个活动,在那里你可以找到关于你点击的图像的信息。我怎么做这个?有解决办法吗
我正在考虑使用onclick属性,但我不知道如何做到这一点
here's the activity_main.xml
<安卓x.viewpager2.widget.ViewPager2
安卓:id="@+id/viewPagerImageSlider"
安卓:layout_width="415dp"
安卓:layout_height="413dp"
安卓:layout_marginStart="8dp"
安卓:layout_marginLeft="8dp"
安卓:layout_marginTop="150dp"
安卓:layout_marginEnd="8dp"
安卓:layout_marginRight="8dp"
安卓:layout_marginBottom="168dp"
安卓:paddingStart="80dp"
安卓:paddingEnd="80dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</安卓x.constraintlayout.widget.ConstraintLayout>
here's the MainActivity.java
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.viewPagerImageSlider);
List<SliderItem> sliderItems = new ArrayList<>();
sliderItems.add(new SliderItem(R.drawable.image1));
sliderItems.add(new SliderItem(R.drawable.image2));
sliderItems.add(new SliderItem(R.drawable.image3));
sliderItems.add(new SliderItem(R.drawable.image4));
sliderItems.add(new SliderItem(R.drawable.image5));
viewPager2.setAdapter(new SliderAdapter(sliderItems, viewPager2));
viewPager2.setClipToPadding(false);
viewPager2.setClipChildren(false);
viewPager2.setOffscreenPageLimit(3);
viewPager2.getChildAt(0).setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);
CompositePageTransformer compositePageTransformer = new CompositePageTransformer();
compositePageTransformer.addTransformer(new MarginPageTransformer(40));
compositePageTransformer.addTransformer(new ViewPager2.PageTransformer() {
@Override
public void transformPage(@NonNull View page, float position) {
float r = 1 - Math.abs(position);
page.setScaleY(0.85f + r * 0.15f);
}
});
viewPager2.setPageTransformer(compositePageTransformer);
}
}
here's the SliderItem.java
public class SliderItem {
private int image;
SliderItem(int image) {
this.image = image;
}
public int getImage() {
return image;
}
}
here's the SliderAdapter.java
public class SliderAdapter extends RecyclerView.Adapter<SliderAdapter.SliderViewHolder> {
private List<SliderItem> sliderItems;
private ViewPager2 viewPager2;
SliderAdapter(List<SliderItem> sliderItems, ViewPager2 viewPager2) {
this.sliderItems = sliderItems;
this.viewPager2 = viewPager2;
}
@NonNull
@Override
public SliderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new SliderViewHolder(
LayoutInflater.from(parent.getContext()).inflate(
R.layout.slide_item_container,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull SliderViewHolder holder, int position) {
holder.setImage(sliderItems.get(position));
if(position == sliderItems.size() - 2) {
viewPager2.post(runnable);
}
}
@Override
public int getItemCount() {
return sliderItems.size();
}
class SliderViewHolder extends RecyclerView.ViewHolder {
private RoundedImageView imageView;
SliderViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageSlide);
}
void setImage(SliderItem sliderItem) {
imageView.setImageResource(sliderItem.getImage());
}
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
sliderItems.addAll(sliderItems);
notifyDataSetChanged();
}
};
}
here's the slide_item_container.xml
<?xml version="1.0" encoding="utf-8"?>
<com.makeramen.roundedimageview.RoundedImageView
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
安卓:id="@+id/imageSlide"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:adjustViewBounds="true"
app:riv_corner_radius="12dp">
</com.makeramen.roundedimageview.RoundedImageView>
# 1 楼答案
我将尝试解释如何通过将图像位置从MainActivity传递到detailedActivity来传递数据
我使用以下方法:首先,用方法名
onPictureClicked()
创建一个接口,然后在MainActivity中实现该接口以覆盖onPictureClicked()
。在适配器中调用此方法。比如:interface.onPictureClicked(int picturePositon)
接口。java
滑块适配器。爪哇
创建此
detailedActivity
以从MainActivity
获取意图这只是一个通过接口演示如何实现onClick-in适配器来传输或启动另一个活动的示例