Witam,
mam problem z przekazaniem zmiennej List<object> do onClickListenera
W oncreate wpisuje wartości z bazy danych, lista wyświetla i działa (kod poniżej)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_food_with_list_view);
//resources lista arrays for adapter
foodResources = new ArrayList<>();
listView = (ListView)findViewById(R.id.listView);
searchBox = (EditText)findViewById(R.id.editText);
searchButton = (Button)findViewById(R.id.button12);
BazaFoodListOfFood db = new BazaFoodListOfFood(AddFoodWithListView.this);
final Cursor cursor = db.getAll();
String foodDesc;
cursor.moveToFirst();
do{
foodDesc = cursor.getString(0);
foodResources.add(new foodResData(
foodDesc,
cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4),
cursor.getString(5),
cursor.getString(6),
cursor.getString(7)
));
}while (cursor.moveToNext());
Tutaj jest OnClickListener, który znajduje się w Oncreate:
final List<foodResData> data = foodResources;
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(searchBox.getText().toString().length()!=0){
List<foodResData> foodResourcesHelper;
foodResourcesHelper = data;
SearchEngine searchEngine = new SearchEngine();
foodResources.clear();
superResources.clear();
int dlg = foodResourcesHelper.size();
for(int i = 0 ; i<dlg; i++){
if(searchEngine.find(foodResourcesHelper.get(i).getDescription(),searchBox.getText().toString())) foodResources.add(foodResourcesHelper.get(i));
}
Log.v("checkpoint","LOL");
listView.invalidateViews();
}else Toast.makeText(getApplicationContext(),"Fill search box",Toast.LENGTH_SHORT).show();
}
});
Jak sprawdzam debugerem to lista w Listenerze jest pusta pomimo przypisani. W aplikacji gdy klikne przycisk lista się czyści (wykonują się funkcje clear, próbując wywołać element listy w onclick listenerze np: 5 dostaje out of bounds exception)
Z góry dzięki za pomoc :D
P.S. - identyczny problem występuje w OnTextChangeListener :(