我有一个编辑文本和一个包含所有联系人的列表视图。当我搜索名称并显示结果时,我在名称中键入它显示结果如自动完成,下面是我的代码
final EditText editTxt = (EditText) findViewById(R.id.txtContName);
editTxt.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
inputName = s.toString();
if(inputName!=null&&!inputName.trim().equals("")){
((Button) findViewById(R.id.btnsearch)).setBackgroundResource(R.drawable.search);
Log.d(TAG, "LoadMoreEntries --> Constants.loadEntries : "
+ Constants.loadEntries);
try {
if (Constants.loadEntries != null) {
Constants.loadEntries.cancel(true);
}
} catch (Exception e) {
Log.e(TAG, "Loading Data-------------------------------", e);
}
Constants.loadEntries = new LoadEntries();
Constants.loadEntries.execute();
}
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
当我尝试清除edittext时,我遇到问题,当编辑文本清除但未发生时,应显示所有结果。任何帮助表示赞赏
答案 0 :(得分:1)
那是因为当输入为空白时你没有得到所有结果?
if(inputName!=null&&!inputName.trim().equals("")){
...
}
答案 1 :(得分:0)
所以我更改代码以获得更好的格式。这应该可以解决你的问题。我不知道是什么 Constants.loadEntries = new LoadEntries(); 和 Constants.loadEntries.execute();
但是也许可能有些不对劲。但请尝试下面的代码:
final EditText editTxt = (EditText) findViewById(R.id.txtContName);
editTxt.addTextChangedListener(new TextWatcher()
{
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
public void afterTextChanged(Editable s)
{
inputName = s.toString();
if (inputName != null && !inputName.trim().equals(""))
{
((Button) findViewById(R.id.btnsearch)).setBackgroundResource(R.drawable.search);
Log.d(TAG, "LoadMoreEntries --> Constants.loadEntries : "
+ Constants.loadEntries);
try
{
if (Constants.loadEntries != null)
{
Constants.loadEntries.cancel(true);
}
} catch (Exception e)
{
Log.e(TAG, "Loading Data-------------------------------", e);
}
Constants.loadEntries = new LoadEntries();
Constants.loadEntries.execute();
}
//Here do the else and call the LoadEntries
else
{
Constants.loadEntries = new LoadEntries();
Constants.loadEntries.execute();
}
}
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
}
});
更好的代码格式肯定会对您有所帮助。