我尝试不再使用text
而我正试图熟悉ListView
。
在我尝试在VERTICAL RecyclerView
中使用HORIZONTAL RecyclerView
之前使用RecyclerView
没问题,我在这里搜索并找到答案,谢谢。
我也希望能回答我的问题。
我正在使用RecyclerView
作为RecyclerView
的{{1}}作为CardView
项来处理OnClickListener
次点击,我没有问题。
当ViewHolder
点击气球时,尝试在CardView
上创建分享按钮时会出现问题,GreenDroid
图书馆有三个选项Facebook
,Twitter
和Google+
点击那些我点击使用getAdapterPosition
点击视图的位置,它一直返回错误的值。
这是我的代码..
public class ViewHolder extends RecyclerView.ViewHolder implements
OnClickListener {
private ImageView imgViewItem;
private TextView textViewTitle;
private ImageView imgViewShare;
public ViewHolder(View view) {
super(view);
imgViewItem = (ImageView) view
.findViewById(R.id.img_view_item_no_description);
imgViewItem.setAdjustViewBounds(true);
textViewTitle = (TextView) view
.findViewById(R.id.text_view_title_no_description);
prepareQuickActionGrid();
imgViewShare = (ImageView) view
.findViewById(R.id.img_view_share_no_description);
imgViewShare.setOnClickListener(this);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.equals(imgViewShare)) {
grid.show(v);
} else {
Intent intent = new Intent(context,
McDonaldsPagerActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Constants.TITLES_TAG, titles);
intent.putExtra(Constants.IMAGES_TAG, imgs);
intent.putExtra(Constants.ID_TAG, id);
context.startActivity(intent);
}
}
和prepareQuickActionGrid()
..
private void prepareQuickActionGrid() {
grid = new QuickActionGrid(context);
grid.addQuickAction(new MyQuickAction(context,
R.drawable.facebook_50x50, R.string.facebook));
grid.addQuickAction(new MyQuickAction(context,
R.drawable.twitter_50x50, R.string.twitter));
grid.addQuickAction(new MyQuickAction(context,
R.drawable.g_plus_50x50, R.string.g_plus));
grid.setOnQuickActionClickListener(new OnQuickActionClickListener() {
@Override
public void onQuickActionClicked(QuickActionWidget widget,
int gridPosition) {
// the problem is here .. wrong value is returned all the time
int position = getLayoutPosition();
Log.d("position", "" + position);
// wrong position results in wrong title and wrong image
switch (gridPosition) {
case 0:
share(Constants.FACEBOOK, imgs[position],
titles[position]);
break;
case 1:
share(Constants.TWITTER, imgs[position],
titles[position]);
break;
case 2:
share(Constants.G_PLUS, imgs[position],
titles[position]);
break;
}
}
});
}
我尝试使用getAdapterPosition()
,但它也会返回错误的值。
我的代码有什么问题。
任何克服这个问题的建议。
答案 0 :(得分:-1)
解决此问题的一种快速方法是将代码放在onBindViewHolder
方法中,您可以访问该位置。