【发布时间】:2018-01-28 15:26:19
【问题描述】:
我无法用我的问题完美地表达这个问题,但基本上我想要实现的是:-
我有包含 textview 的项目的 recyclerview,例如,当项目被点击时;将显示一个自定义对话框,其中包含单击元素的相同内容。
到目前为止一切顺利,在同一个对话框的每一侧都有两个箭头(左右),箭头按钮应该在 recyclerview 项目之间导航并根据新位置更新内容。
这是我所做的:
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.tvTitle.setText(data.get(position).getTitle());
holder.itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Initializing the custom dailog
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow() .setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.getWindow().getAttributes().gravity = Gravity.TOP;
dialog.setContentView(R.layout.dailog);
dialog.show();
ImageView RightArrow = (ImageView) dialog.findViewById(R.id.dia_right_arrow);
ImageView LeftArrow = (ImageView) dialog.findViewById(R.id.dia_left_arrow);
final TextView textViewTitle = (TextView) dialog.findViewById(R.id.dia_tvTtile);
textViewTitle.setText(data.get(position).getTitle());
RightArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int curPosi = 0;
if (data.size() != 0) {
curPosi = position+1;
}
textViewTitle.setText(data.get(position).getTitle());
}
});
LeftArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int curPosi = 0;
if (data.size() != 0) {
curPosi = position-1;
}
textViewTitle.setText(data.get(position).getTitle());
} });
}});
}
结果:
当我点击右箭头时,它会 100% 工作,但是如果我再次点击什么都不会发生!
如果随时单击左箭头,则会出现以下异常:
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
是否可以实现循环效果,我的意思是当我达到 最后一个索引并再次单击它显示第一个索引,反之亦然 反之亦然..!
有什么帮助吗?
【问题讨论】:
标签: java android arrays arraylist android-recyclerview