我正在使用自定义适配器并在getView()方法上添加此代码:
final ImageView popupMenu = (ImageView) v.findViewById(R.id.popupMenu);
popupMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
popupMenu.setImageResource(R.drawable.ic_popup_menu_selected);
PopupMenu popup = new PopupMenu(context, view);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
@Override
public void onDismiss(PopupMenu pm) {
popupMenu.setImageResource(R.drawable.ic_popup_menu);
}
});
popup.show();
}
});
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
java.lang.RuntimeException: Failed to resolve attribute at index 6
相同的代码适用于ListItemClick(),但它没有意义,因为它需要单击一次设置并再次单击以触发PopupMenu.
编辑:Logcat
11-02 17:58:51.276 1996-1996/com.android.example E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.android.example, PID: 1996
java.lang.RuntimeException: Failed to resolve attribute at index 6
at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:603)
at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:6423)
at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6591)
at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:735)
at …Run Code Online (Sandbox Code Playgroud)