- Forum-Beiträge: 4
28.06.2015, 17:33:58 via Website
28.06.2015 17:33:58 via Website
Hallo Zusammen,
ich habe ein EditText-Feld, dass mit einem Textwatcher eine Liste filtern soll. Weiterhin habe ich einen Button, der wenn gedrückt, einen neuen Eintrag in der Liste anlegt, mit dem String welcher sich zu dieser Zeit im Textfeld befindet:
public class MainActivity extends ActionBarActivity {
ListView listView;
ArrayList<String> player_list = new ArrayList<String>();
ArrayAdapter<String> adapter;
Button addPlayer;
EditText searchPlayer;
String temp_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list_view);
addPlayer = (Button) findViewById(R.id.btn_addPlayer);
searchPlayer = (EditText) findViewById(R.id.et_searchPlayer);
player_list.add("bla");
player_list.add("blubb");
adapter = new ArrayAdapter<String>(this, R.layout.list_item, player_list);
listView.setAdapter(adapter);
addPlayer = (Button) findViewById(R.id.btn_addPlayer);
addPlayer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
temp_name = searchPlayer.getText().toString();
if(temp_name.isEmpty() ) {
searchPlayer.setText("");
return;
}
if(player_list.contains(temp_name)) {
searchPlayer.setText("");
Toast.makeText(getBaseContext(), "Player " + temp_name +
" already exists", Toast.LENGTH_SHORT ).show();
return;
}
player_list.add(temp_name);
adapter.notifyDataSetChanged();
adapter.sort(new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
return lhs.toString().compareTo(rhs.toString());
}
});
searchPlayer.setText("");
}
});
searchPlayer.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
MainActivity.this.adapter.getFilter().filter(s);
}
});
(...)
Nun funktioniert das Ganze ohne den TextChangedListener wunderbar. Mit diesem lassen sich aber keine neuen Listeneinträge mehr anlegen. Weiß jemand woran das liegt und wie ich das beheben kann?
Liebe Grüße,
limo
— geändert am 28.06.2015, 17:36:51
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.