我使用的是钛合金,我有一个搜索栏,可以在我的 ListView 中搜索,效果很好,但如果我的列表包含一个单词,例如“Adam”,并且我在搜索栏中输入“m”,则列表将被过滤为任何包含字母“m”的单词都会显示“Adam”,尽管它以“A”而不是“m”开头,那么我该如何解决这个问题?
最佳答案
您可以使用“searchableText”进行搜索。默认情况下,它会从输入的第一个字符开始搜索。如果您将搜索文本限制为 1 个字符长度。您将进行单个字符搜索。有关更多信息,请点击此链接 http://docs.appcelerator.com/titanium/3.0/#!/guide/ListViews-section-37521650_ListViews-SearchTextandView
var win = Ti.UI.createWindow({backgroundColor: 'white', fullscreen: true});
var search = Titanium.UI.createSearchBar({
barColor:'#000',
showCancel:true,
height:43,
top:0,
});
search.addEventListener('cancel', function(){
search.blur();
});
// for textSearch, use the change event to update the search value
// search.addEventListener('change', function(e){
// listView.searchText = e.value;
// });
var listView = Ti.UI.createListView({searchView: search, caseInsensitiveSearch: true});
// for textSearch, add the search bar or text field as a header view
// var listView = Ti.UI.createListView({headerView: search, caseInsensitiveSearch: true});
var listSection = Ti.UI.createListSection();
var fruits = ['Papaya', 'Peach', 'Pear', 'Persimmon', 'Pineapple', 'Pluot', 'Pomegranate'];
var data = [];
for (var i = 0; i < fruits.length; i++) {
data.push({
properties: {title: fruits[i], searchableText: fruits[i]}
});
}
listSection.setItems(data);
listView.addEventListener('noresults', function(e){
alert("No results found!");
});
listView.sections = [listSection];
win.add(listView);
win.open();
关于android - 如何在钛合金的ListView中仅根据单词的第一个字母进行过滤来搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20944460/