名前のリスト (Firstname + LastName) があり、その listView で Firstname と lastname で検索したい。このコードを使用して、frstname のみで検索しています
ファーストネームとラストネームでも検索できるように、コードを変更する必要があることを誰かに教えてもらえますか?
名前のリスト (Firstname + LastName) があり、その listView で Firstname と lastname で検索したい。このコードを使用して、frstname のみで検索しています
ファーストネームとラストネームでも検索できるように、コードを変更する必要があることを誰かに教えてもらえますか?
ArrayAdapter には既にフィルター機能があり、ListView は検索テキストを受け入れることができるため、車輪を再発明する必要はありません。
例:
データに複数のオブジェクトがある場合は常に、クラスにデータを保持させます。
Public class FullName {
public final String firstName;
public final String lastName;
public Fullname(String fn, String ln){
this.firstName = fn;
this.lastName = ln;
}
@Override
public String toString(){
// this is what ArrayAdapter uses for display and search
return firstName + " " + lastName;
}
}
内部活動:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView nameList = new ListView(this);
setContentView(nameList);
ArrayAdapter<FullName> nameAdapter = new ArrayAdapter<FullName>(this,android.R.layout.simple_list_item_1);
nameAdapter.add( new FullName("John","Doe") );
nameAdapter.add( new FullName("Bob","Carson") );
nameAdapter.add( new FullName("Kyle","Connor") );
nameList.setAdapter(nameAdapter);
//bring up the keyboard, start typing on a ListView and it will filter out matching results
nameList.setTextFilterEnabled(true);
}
EditText を使用して本当に検索したい場合:
nameAdapter.getFilter.filter(myEditText.getText());
クリアフィルター:
nameAdapter.getFilter.filter(null);