Я хочу показать popupwindow, у которого есть Listview, и когда я нажимаю над списком, сделайте что-нибудь. Чтобы упростить мою проблему, я сделал следующий пример, где он показывает проблему: ítem click on listview не работает.ListView OnItemClickListener на PopupWindow не работает (Android)
Моего popupwindow пользовательского макет:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15dp"
android:textStyle="bold"
android:gravity="center"/>
<ListView
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="110dp"
android:id="@+id/lvData"
android:headerDividersEnabled="false" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/ibInfo"
android:layout_gravity="center"
android:src="@android:drawable/ic_menu_info_details"/>
Моей карта деятельность, где я показываю Popupwindow:
public void onButtonClick(View view){
mPopupView = getLayoutInflater().inflate(R.layout.popupwindow_custom_layout, null);
TextView tvName = (TextView) mPopupView.findViewById(R.id.tvName);
ListView lvData = (ListView) mPopupView.findViewById(R.id.lvData);
ImageButton ibInfo = (ImageButton) mPopupView.findViewById(R.id.ibInfo);
TextView txtListTitle = new TextView(this);
ibInformacion.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("click on button");
}
});
txtListTitle.setText("List Title");
listaLineas.addHeaderView(txtListTitle);
ArrayList<String> list = new ArrayList<>();
tvNombre.setText("Main Title");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, list);
adapter.add("Test 1");
adapter.add("Test 2");
adapter.add("Test 3");
adapter.add("Test 4");
adapter.add("Test 5");
adapter.add("Test 6");
lvData.setAdapter(adapter);
lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
System.out.println("Click on list item");
}
});
PopupWindow popupWindow = new PopupWindow(mPopupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mPopupWindow.showAtLocation(this, Gravity.CENTER, 0, 0);
}
Почему ibInfo-х setOnClickListener
работает отлично, но lvData-х setOnItemClickListener
(ни setOnClickListener
) ничего не делает? Что мне не хватает? (Прокрутка списка работает отлично)
Примечание: Я не могу установить mPopupWindow.setFocusable(true)
, потому что я потеряю щелчки по карте (onMapClick
, onCameraChange
и т.д.).
Нет, не решение –