всем привет!Это, вероятно, так же просто, как пирог, но, по правде говоря, я боролся около 1,5 часов.
Чего я хотел бы добиться, так это дифференцировать ListPopupWindow (используемый в качестве альтернативы спиннера) по idв AdapterView.OnItemClickListener, но я не смог этого сделать из-за:
Необратимых типов, не могу привести 'android.view.View' к 'android.Widget.ListPopupWindow'
в строке: ListPopupWindow listPopupWindow = (ListPopupWindow) parent;
AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListPopupWindow listPopupWindow = (ListPopupWindow) parent;
int lpwID = listPopupWindow.getId();
switch (lpwID) {
...
}
}
};
Остальная часть моего кода, как показано ниже:
//text views, ListPopupWindows & anchors, ArrayLists
tvCategory = findViewById(R.id.tvCategory_activityEvent);
tvSubcategory = findViewById(R.id.tvSubcategory_activityEvent);
lpwCategory = new ListPopupWindow(this);
lpwSubcategory = new ListPopupWindow(this);
lpwCategory.setAnchorView(tvCategory);
lpwSubcategory.setAnchorView(tvsubcategory);
//arrayAdapters
lCategories = DBManager.getDbInstance(Event.this).serviceCategoryDAO().getCategories();
aaCategory = new ArrayAdapter<>(Event.this, R.layout. spinner_item , lCategories);
aaSubcategory = new ArrayAdapter<>(Event.this, R.layout.spinner_item);
aaCategory.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item );
lpwCategory.setAdapter(aaCategory);
aSubcategory.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
lpwSubcategory.setAdapter(aaSubcategory);
lpwCategory.setOnItemClickListener(onItemClickListener);
lpwSubcategory.setOnItemClickListener(onItemClickListener);
И еще один вопрос: как я могу назначитьID для ListPopupWidows?Когда дело доходит до прядильщиков, это просто:
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Spinner spinner = (Spinner) parent;
spinnerId = spinner.getId
...}
Будем очень благодарны за любые советы, подсказки и подсказки, так как я хочу держаться подальше от прядильщиков по нескольким причинам :) Заранее спасибо!