当前位置: 首页 > 知识库问答 >
问题:

如何使用OnListItemClickListener使用此搜索过滤ListView

卢子民
2023-03-14

我在使用 setOnItemClickListener 时遇到问题。每次我尝试时,它都会导致太多的修复错误,使代码比我打算做的更糟糕。

这是我的代码:

public class Search extends Activity{
// List view
private ListView lv;

// Listview Adapter
ArrayAdapter<String> adapter;

// Search EditText
EditText inputSearch;


// ArrayList for Listview
ArrayList<HashMap<String, String>> productList;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);

// Listview Data
final String products[] = {"Fill in the Blocks", "The Music Bee", "Little Paragon",
"Subway Surfers", "Cytus", "Temple Run", "Clumsy Ninja", "Smash Hit"};

lv = (ListView) findViewById(R.id.list_view);
inputSearch = (EditText) findViewById(R.id.inputSearch);

// Adding items to listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name,        products);
lv.setAdapter(adapter);

/**
* Enabling Search Filter
* */
inputSearch.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
Search.this.adapter.getFilter().filter(cs);   
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub       
}

@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub                          
}            
});    
}       
}

我想让listview数据中的字符串在我的其他活动中可点击,但这不起作用。我试过这个代码:

 lv.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

 String openClass = adapter.getItem[position];
 if (openClass.equals("Fill in the Blocks")) {
   Intent myIntent = new Intent(view.getContext(), Fill_in_the_Blocks.class);
   startActivityForResult(myIntent, 0);
   }
 else if (openClass.equals("The Music Bee")) {
   Intent myIntent1 = new Intent(view.getContext(), The_Music_Bee.class);
   startActivityForResult(myIntent1, 0);
   }
 else if (openClass.equals("Little Paragon")) {
   Intent myIntent2 = new Intent(view.getContext(), Little_Paragon.class);
   startActivityForResult(myIntent2, 0);
   }
   }

错误如下:-在lv.setOnItemClickListener中,“AdapterView类型中的方法setOnItemClickListener(AdapterView.OnItemClickListener)不适用于参数(new OnItemClickListener(){})" -在(new OnItemClickListener()中,“OnItemClickListener无法解析为类型”-在公共空隙中onItemClick(AdapterView,“AdapterView无法解析为类型”-在字符串openClass=adapter.getItem[位置]中;,“getItem无法解析或不是字段”

共有1个答案

白丁雨
2023-03-14
  • 在lv.setOnItemClickListener中,"AdapterView类型中的方法setOnItemClickListener(AdapterView.OnItemClickListener)不适用于参数(new OnItemClickListener(){})"
  • 在(new OnItemClickListener()中,“OnItemClickListener无法解析为类型”
  • 在公共无效onItemClick(AdapterView,“AdapterView不能解析为类型”

通过将新的OnItemClickListener()替换为

new AdapterView.OnItemClickListener()

并确保您导入了:

import android.widget.AdapterView;

最后一个错误:

    < li >在字符串open class = adapter . getitem[position]中;,“getItem无法解析或不是字段”

您应该调用getItem方法,而不是使用数组索引。

替换行:

String openClass = adapter.getItem[position];

String openClass = adapter.getItem(position);
 类似资料:
  • 我是ElasticSearch的新手!我有一个eShop(使用Laravel),其中包含超过1,000,000个产品,每个产品在表中都有一些属性,例如名称、描述、价格...和其他表中的一些其他属性,例如、、、、、,...这些都在单独的表中,它们将通过关系连接到产品! 所以我想有一个非常快速和可靠的搜索产品与许多过滤器!就像Android!例如,用户将能够找到具有特殊类别、标签、选项等的产品。。。!

  • 问题内容: 我有一个搜索列表,可以正常工作。该搜索根据找到的单词是否与姓名,家庭和工作相似来进行。现在我想分开搜索。我的意思是,创建三个单选按钮。点击第一个按名称搜索,第二个按家庭搜索,第三个按职位搜索时。 所以我的基本代码在这里: 这里需要添加三个单选按钮。(searchform.php) 搜索search在这里: searchresult.php 如您所见,在这种搜索方法中,当用户在搜索框中输

  • 问题内容: 我想知道是否可以使用HtmlUnit搜索YouTube 。我开始写代码,这里是: 现在,我不知道如何在搜索字段中键入一些文本并按搜索按钮。 我看到了有关HtmlUnit的教程,但我遇到了问题,因为它们使用名为的方法:但是YouTube上的搜索按钮没有名称,只有ID。有人可以帮我吗? 编辑:我在代码上方编辑了代码,现在我从第一页获取youtube链接。但在此之前,我需要按上传日期排序,然

  • 我使用SearchView过滤我的应用程序的RecyclerView,就像这篇文章中描述的一样: 如何使用SearchView筛选RecyclerView 一开始一切看起来都很好,我可以根据需要过滤RecyclerView,但是经过一些尝试,出现了两个问题: 如果我在SearchView中输入文本太快,应用程序会崩溃,并出现以下日志: E/AndroidRuntime: FATAL EXCEPTI

  • 问题内容: 我想从源HTML中删除这些标签及其内容。 问题答案: 当搜索你基本上使用的地方被定义这个API。但是,注释并不是技术上的元素,因此您可能会感到困惑,但它们仍然是由节点名标识的节点。 让我们看看这可能如何工作:

  • 问题内容: 我有一个关于在JSON中搜索特定信息的问题。例如,我有这个JSON文件: 我的问题是,如何通过名称查找特定的人并使用jQuery显示该人的年龄?例如,我想在JSON中搜索一个叫Peter的人,当我找到一个匹配项时,我想显示有关该匹配项的其他信息(在这种情况下,关于名为Peter的人),例如人的年龄。 问题答案: 根据此答案,您可以使用类似: