我制作了水平的RecyclerView来显示图像,通过触摸图像选择不同的动作。我还通过使用background drawable突出显示了当前的活动选择,并在onBindViewHolder上设置了它。
String sql = "EXEC Web.example_procedure 2, 3, 4";
PreparedStatement stmt = con.prepareStatement(sql);
boolean result = stmt.execute();
while (true) {
if (result) {
ResultSet rs = stmt.getResultSet();
// in my case first table has only one column,
// and I need the second table, which has 9 columns
if (rs.getMetaData().getColumnCount() > 1) {
// go through the rows
while (rs.next()) {
// for example what we can do
rs.getMetaData().getColumnCount(); // return column count in the current result set
rs.getObject(int columnIndex); // get value for column index. Must be not greater than .getColumnCount()
}
}
} else {
int updateCount = stmt.getUpdateCount();
if (updateCount == -1) {
// no more results
break;
}
}
result = stmt.getMoreResults();
}
然后我有一个不属于RecyclerView的按钮,所以你也可以通过按下它将Recyclerview中的选择滚动到下一个。 它的工作正常,但突出显示按下按钮时不会改变。 我可以测试当选择当前选择的项目时,我会打开我的指令活动,否则将打开不同的活动。
那么当按下按钮时,我如何能够突出显示当前所选项目?
更新1。
我在myButtonOnClick
下的活动中 public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.itemView.setSelected(selectedPos == position);
holder.imageView.setImageResource(horizontalList.get(position).imageId);
并没有多大作用。
更新2。
发现问题出现在我的onBindViewHolder上,因为我声明了不同的变量,这搞乱了。 所以horizontalAdapter.notifyItemChanged(selectedItem);工作得很好,我的 onBindViewHolder现在我有holder.itemView.setSelected(selectedItem == position); 所以从按钮和recyclerview操纵相同的变量来使事情正确。
答案 0 :(得分:0)
您可以将OnScrollListener添加到RecyclerView,以观察滚动状态和位置的任何变化。
参考this
如果没有帮助,您可以将代码粘贴到button.OnClickListener
内以供进一步讨论。