- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了一个RecyclerView,并且在适配器中我希望创建一个ClickListener。我希望 RecyclerView 中的每个项目在单击后发送唯一的响应。换句话说,一次点击会为每个特定的 RecyclerView 项目加载不同的 fragment 。现在,RecyclerView 没有响应,因为我已经记录了它,甚至添加了一个 Toast,但没有任何运气:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private ArrayList<LatestPoll> mDataSet;
int lastPosition = -1;
// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view holder
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
// each data item is just a string in this case
protected TextView pollQuestion;
protected ImageView pollImage;
protected RelativeLayout individualItem;
public ViewHolder(View v) {
super(v);
pollQuestion = (TextView) v.findViewById(R.id.latest_item_question);
pollImage = (ImageView) v.findViewById(R.id.pollThumbNailImage);
individualItem = (RelativeLayout) v.findViewById(R.id.individual_item);
individualItem.setOnClickListener(this);
}
@Override
public void onClick(View v) {
v.getId();
int itemPosition = getLayoutPosition();
String item = String.valueOf(mDataSet.get(itemPosition));
Toast.makeText(getActivity().getApplicationContext(), item, Toast.LENGTH_LONG).show();
Log.v("TESTING", "ITEM CLICKED!");
}
}
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(ArrayList<LatestPoll> myDataset) {
mDataSet = myDataset;
}
// Create new views (invoked by the layout manager)
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.latest_item, parent, false);
// set the view's size, margins, paddings and layout parameters
return new ViewHolder(v);
}
// Replace the contents of a view (invoked by the layout manager)
//The OutOfBoundsException is pointing here
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Log.v("ON_BIND", "ON_BINDVIEWHOLDER CALLED");
LatestPoll latestPoll = mDataSet.get(position);
holder.pollQuestion.setText(latestPoll.getQuestion());
Picasso.with(getActivity())
.load(latestPoll.getPollImage())
.fit()
.placeholder(R.drawable.loading_spinnter_white)
.into(holder.pollImage);
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return mDataSet.size();
}
}
private void onLoad() {
if (mFragmentListener != null) {
mFragmentListener.onFragmentLoaded();
}
}
public interface FragmentListener {
void onFragmentLoaded();
}
}
最佳答案
您需要将 onclick 监听器设置为 onBindViewHolder 内的父布局。
holder.parentID.setOnClickListener(mRecyclerViewListener);
在您的 View 持有者中
parentID = iteView.findViewById(R.id.parent);
关于java - RecyclerView ClickListener 无法识别触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164430/
抱歉,我对 Java 和 LibGDX 很陌生,但是我遇到了问题。 我的 Pong 游戏中有两个按钮。如果score1或score2等于5,则游戏结束。这是通过使球和桨移出屏幕,然后初始化名为draw
我有一个由文本框和自定义小部件组成的复合小部件,然后将其添加到 VerticalPanel 中。我使用 Raphael JS 创建了这个自定义小部件。 现在我希望这个复合小部件能够识别单击事件和 ct
我想给一个ListView添加一个ListView的ClickListener,但是我不知道怎么办?这是我创建适配器的代码的结尾: //Get all the values from Name, an
我在名为 profile_sliding_menu.xml 的 .xml 文件中定义了一个布局 View : .......... 我正在通过代码创建 Sliding
好的 friend 们。所以我让我的应用程序执行一些基本功能并且对自己非常满意。我的下一个目标是设置一个按钮和备用 Activity/布局。我打算继续进行该 Activity ,并且它在按钮代码之外工
我有一个关于使用自定义适配器为 ListView 创建点击监听器的最佳实践的问题。所以,我的问题是:在哪里更好地实现点击监听器?在自定义适配器中还是在 Activity 中实现 setOnItemCl
我想显示一个 Seekbar,当我选中一个复选框时,当我取消选中该复选框时,Seekbar 将消失。 但它只对我有用,当我取消选中复选框时,Seekbar 通过单击复选框出现但不会消失。 我用 Cli
我定义了以下按钮: public class PressedButton extends Button { private static final int[] STATE_PRESSED = {R.
我有一个带有 ClickListener 事件的按钮和一个内部方法。该方法负责在单击按钮后在 Vaadin GirdLayout 中添加新行。 private GridLayout buildDedu
在处理监听器类并实现多个触摸手势的处理时,我遇到了一个可能的错误。 代码实现 public class MyListener extends ClickListener { private L
我设置了几个 ClickListener 事件(使用 setOnClickListener 函数)。现在我想暂时禁用(或停用、删除、删除)其中一些,但我找不到方法。 提前致谢。 最佳答案 调用setO
我开发了一个 2D 游戏,并使用 OrthographicCamera 和 Viewport 将虚拟板调整为实际显示尺寸。我将图像添加到舞台并使用 ClickListener 来检测点击。它工作正常,
我想在单击此按钮时更改按钮样式。这是我的解决方案: show(){ ... Gdx.input.setInputProcessor(stage); stage.add(myButto
我想让一条线可点击。 我在 Canvas 中使用 onDraw 编写了代码。 我尝试过,但是,drawline(line) 不是一个对象,所以 onclicklistener 无法连接到 line。
我需要创建一种算法。我有它的创建布局的方法,在这个布局中我需要在这个布局中指定 clickListener 。我想不出任何办法,请帮我做这个。 此方法创建布局 public LinearLayout
我已经创建了一个RecyclerView,并且在适配器中我希望创建一个ClickListener。我希望 RecyclerView 中的每个项目在单击后发送唯一的响应。换句话说,一次点击会为每个特定的
该应用程序具有初始消息屏幕,该屏幕在首次运行时显示,其中使用日期选择器从用户处获取日期,然后从下一次开始直接转到 main.xml。这是我试过的逻辑在 onCreate() 中 if() {
我想了解微调器是否已被单击,我对选择的项目不感兴趣,仅当用户已单击微调器时。当我尝试它时,会抛出一个编译器错误,显示“不要在 AdapterView 上调用 setOnClickListener ..
我在编写一个简单的 Android 应用程序时遇到了一个小问题。在我的主要 Activity 中,有一个按钮和与之关联的回调在 AsynchTask 中获取用户的 json 文件。获取文件后,我在 t
我有一个带有 SlidingDrawer 的 RelativeLayout。我正在使用抽屉作为菜单。当您单击抽屉中的某个项目时,它会将一个 ImageView 添加到 RelativeLayout。我
我是一名优秀的程序员,十分优秀!