在xml中为button控件指定属性android.onClick="方法名"即可。这样就不用在java文件中每次都声明、获取再设置监听器了.
<com.yousu.ui.CustomButton
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:text=""
android:background="@drawable/btn_transparent"
android:textSize="20sp"
android:textColor="@android:color/white"
android:onClick="showPopupMenu" />
对应的方法为(需要把控件作为参数传入,且参数类型必须为View):
public void onshowPopupMenu(View button) {
PopupMenu popup = new PopupMenu(this, button);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(),
Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();
}