为了账号安全,请及时绑定邮箱和手机立即绑定

查看页面管理器错误的项目位置页面位置

查看页面管理器错误的项目位置页面位置

慕哥6287543 2022-09-22 19:42:59

的 on 将错误的项目位置发送到以意图调用的活动。当我单击图像1时,它会发送图像2的信息,当我单击图像2时,它会发送图像3的信息,依此类推。接收方活动接收到的单击发送方活动的错误图像和标题。我正在使用 带 的 来检测点击。instantiateItemPagerAdapterviewpagerfloatingActionButtononclickListener


@NonNull

@Override

public Object instantiateItem(@NonNull ViewGroup container, final int position) {

    LayoutInflater inflater = (LayoutInflater) 

    mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View slideLayout = inflater.inflate(R.layout.slide_item, null);


    final ImageView slideImg = slideLayout.findViewById(R.id.slide_img);

    final TextView slideText = slideLayout.findViewById(R.id.slide_title);

    final  FloatingActionButton fab = slideLayout.findViewById(R.id.floatingActionButton);


    slideImg.setImageResource(mList.get(position).getImage());

    slideText.setText(mList.get(position).getTitle());

    slideTitle = slideText.getText().toString();

    thumbnail = mList.get(position).getImage();


    container.addView(slideLayout);


    fab.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            Intent intent = new Intent(mContext,  MovieDetailActivity.class);

            intent.putExtra("title", slideTitle);

            intent.putExtra("imgURL", thumbnail);

            mContext.startActivity(intent);    

        }

    });


    return slideLayout;

}


查看完整描述

2 回答

?
守候你守候我

TA贡献1464条经验 获得超10个赞

重写此方法以获取片段的当前位置。使用此位置获取有关当前单击的信息。


@Override

public void setPrimaryItem(ViewGroup container, int position, Object object) {


    Log.i(TAG, "setPrimaryItem: " + position);


    super.setPrimaryItem(container, position, object);

}


查看完整回答
反对 回复 6天前
?
繁花不似锦

TA贡献1519条经验 获得超4个赞

最终代码是这样得到的


@NonNull

@Override

public Object instantiateItem(@NonNull ViewGroup container, final int position) {


    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View slideLayout = inflater.inflate(R.layout.slide_item, null);


    final ImageView slideImg = slideLayout.findViewById(R.id.slide_img);

    final TextView slideText = slideLayout.findViewById(R.id.slide_title);

    final  FloatingActionButton fab = slideLayout.findViewById(R.id.floatingActionButton);


    slideImg.setImageResource(mList.get(position).getImage());

    slideText.setText(mList.get(position).getTitle());


    container.addView(slideLayout);


    fab.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


            Intent intent = new Intent(mContext, MovieDetailActivity.class);

            intent.putExtra("title", slideTitle);

            intent.putExtra("imgURL", thumbnail);

            mContext.startActivity(intent);




        }

    });


    return slideLayout;


}


@Override

public int getCount() {

    return mList.size();

}


@Override

public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {

    return view == object;

}



@Override

public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {


    container.removeView((View)object);

}

@Override

public void setPrimaryItem(ViewGroup container, int position, Object object){


    Log.i(TAG, "setPrimaryItem_che: " + position);


    super.setPrimaryItem(container, position, object);


    slideTitle = mList.get(position).getTitle();

    thumbnail = mList.get(position).getImage();

}



查看完整回答
反对 回复 6天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信