我的任务是创建一个带有ListView
的Android应用程序,该应用程序必须具有添加按钮和搜索系统。我看了几个教程(https://www.youtube.com/watch?v=c9yC8XGaSv4和https://www.youtube.com/watch?v=7LgEk3Cg9Yk)并使用这两个教程我开发了一个程序。该程序可以做两件事,但有一个错误。当我第一次运行应用程序时,我添加了一些项目然后我使用了搜索功能。搜索工作正常,但搜索一次使用后,它就不再有效了。
以下是我的代码:
private ArrayList<String> arrayList;
private ArrayAdapter<String> adapter;
private EditText txtInput;
SearchView searchView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView)findViewById(R.id.listv);
String Items[]={};
arrayList = new ArrayList<>(Arrays.asList(Items));
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(adapter);
txtInput = (EditText)findViewById(R.id.txtinput);
Button btAdd = (Button)findViewById(R.id.btadd);
searchView = (SearchView)findViewById(R.id.searchView1);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
return false;
}
@Override
public boolean onQueryTextChange(String text) {
adapter.getFilter().filter(text);
return false;
}
});
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newItem = txtInput.getText().toString();
arrayList.add(newItem);
adapter.notifyDataSetChanged();
}
});
}
}