Android Listview in PopupWindow onitemclick not work on some device
You can make context menu instead of popup menu it work same like this .For creating context menu just refer this link:
http://developer.android.com/guide/topics/ui/menus.html#context-menu
In this link refer to Creating Contextual Menus
.
Sort exanple on this like this u can add context menu ------first register it in onclicklistener like
registerForContextMenu(view)
for oncreate @Override public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { menu.add(Menu.NONE, CONTEXT_MENU_UNPAIR_ITEM, Menu.NONE, "UNPAIR"); menu.add(Menu.NONE, DEFAULT_DEVICE, Menu.NONE, "USE AS CGM DEVICE"); }For item selected in context menu @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case CONTEXT_MENU_UNPAIR_ITEM: //whatever u wantbreak case DEFAULT_DEVICE: //whatever your logic accordind to u return(true); } return(super.onOptionsItemSelected(item)); }
You may want to use ListAdapter instead of BaseAdapter for a ListView , and return True for areAllItemsEnabled and isItemEnabled in the class that implements ListAdapter.
Something like this...
class CustomListAdapter implements ListAdapter { Activity callingActivity; ArrayList<String> items; public CustomListAdapter(Activity act, ArrayList<String> list) { callingActivity = act; items = list; } @Override public void registerDataSetObserver(DataSetObserver observer) { } @Override public void unregisterDataSetObserver(DataSetObserver observer) { } @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return 0; } @Override public boolean hasStableIds() { return false; } @Override public View getView(int position, View convertView, ViewGroup parent) { AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT); LinearLayout ll = new LinearLayout(callingActivity); ll.setLayoutParams(params); ll.setGravity(Gravity.CENTER); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setPadding(5, 5, 5, 5); // // Code for your list item here... // return ll; } @Override public int getItemViewType(int position) { return 0; } @Override public int getViewTypeCount() { return 1; } @Override public boolean isEmpty() { return false; } @Override public boolean areAllItemsEnabled() { return true; } @Override public boolean isEnabled(int position) { return true; }}
Good Luck. :)