实际上,我正在尝试在我的RecyclerView中添加一个SearchView,以便可以在其上搜索不同种类的项目,
但是当我在SearchView中搜索一个结果时遇到问题,当我单击它时就发现了该问题,或者所选项目是错误的,或者更好的是,它是来自主ArrayList的项目,而不是您搜索的结果可以在下面的gif中看到,我在按下Baybar时说我已经选择了Bayles,但我正在搜索Bayles,但是当我将其作为子项添加到另一个回收站时,它正在添加ABBONDANTE,而不是Bayles。
这是我的适配器的ViewHolder
<!DOCTYPE html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="//#" />
<script type="text/javascript" src="https://html2canvas.hertzen.com/dist/html2canvas.js"></script>
<script type="text/javascript" src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
</head>
<body>
<div id="capture" style="padding: 10px; background: #f5da55">
<h4 style="color: #000; ">Helloo world!</h4>
</div>
<div id="match-button" onclick="sendData();">capture</div>
</body>
</html>
这是我来自Activity的onClickListener,我将项目添加到其他RecyclerView
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null){
int position = getAdapterPosition();
if(position != RecyclerView.NO_POSITION){
listener.onItemClick(position);
Snackbar.make(v,variantiConstructors.get(position).getDeskT(),Snackbar.LENGTH_SHORT).show();
}
}
}
});
这是我的带有过滤器的适配器代码
adapterVarianti.setOnItemClickListener(new AdapterVarianti.OnItemClickListener() {
@Override
public void onItemClick(int position) {
search.clearFocus();
if (dummyDataItems.size() != 0) {
if (tipo.toString().equals("CON ") || tipo.toString().equals("PIU' ") || tipo.toString().equals("MENO ") || tipo.toString().equals("SENZA ")) {
// Here i'm adding the selected item to a String builder but i think it's here where i'm doing something wrong
tipo.append(filteredVariable.get(position).getDeskT());
// Adding item from the recyclerView where there is searchView to last item from the recyclerView on background.
ItemPTERM lastAdded = dummyDataItems.get(dummyDataItems.size() - 1);
lastAdded.setVariant(new Variant(tipo.toString()));
if (exampleAdapter.getItemCount() > 0) {
mRecyclerViewTOP.scrollToPosition(exampleAdapter.getItemCount() - 1);
}
exampleAdapter.notifyDataSetChanged();
tipo = new StringBuilder();
if(segmentedButtonGroup.getPosition() == 0){
tipo = new StringBuilder();
tipo.append("CON ");
}
if(segmentedButtonGroup.getPosition() == 1){
tipo = new StringBuilder();
tipo.append("PIU' ");
}
if(segmentedButtonGroup.getPosition() == 2){
tipo = new StringBuilder();
tipo.append("MENO ");
}
if(segmentedButtonGroup.getPosition() == 3){
tipo = new StringBuilder();
tipo.append("SENZA ");
}
}
}
}
});
答案 0 :(得分:0)
通过使用以下代码将列表再次传递给“活动”来解决:
public ArrayList<VariantiConstructor> getList(){
return variantiConstructors;
}
然后在活动代码中:
tipo.append(adapterVarianti.getList().get(position).getDeskT());