自定义onClick属性不起作用

时间:2014-08-18 03:58:52

标签: android onclick android-custom-view

我创建了一个复合视图,其中包含一个TextView和一个“购买”Button

对于我的复合视图,我创建了一个名为onBuyClick的自定义属性。它应该与View的{​​{1}}属性具有相同的目的,但是监听器不在整个视图上,而只在按钮上。所以,我做的第一件事是从onClick类复制View属性的作用。它奏效了! (略有改编)。

但是一旦我添加onClick,它就无法找到我希望它获取的方法并抛出btnBuy.setOnClickListener(new OnClickListener() {第二个,其中IllegalStateException正在捕获)。

以下是NoSuchMethodException属性后执行的作品:

onBuyClick

以下是此部分之外定义的变量:if (context.isRestricted()) { throw new IllegalStateException("The android:onClick attribute cannot " + "be used within a restricted context"); } final String handlerName = a.getString(attr); if (handlerName != null) { btnBuy.setOnClickListener(new OnClickListener() { //As soon as "btnBuy." is added, everything crashes once the button is pressed. private Method mHandler; public void onClick(View v) { if (mHandler == null) { try { mHandler = getContext().getClass().getMethod(handlerName, View.class); } catch (NoSuchMethodException e) { int id = getId(); String idText = id == NO_ID ? "" : " with id '" + getContext().getResources().getResourceEntryName( id) + "'"; throw new IllegalStateException("Could not find a method " + handlerName + "(View) in the activity " + getContext().getClass() + " for onClick handler" + " on view " + this.getClass() + idText, e); } } try { mHandler.invoke(getContext(), this); } catch (IllegalAccessException e) { throw new IllegalStateException("Could not execute non " + "public method of the activity", e); } catch (InvocationTargetException e) { throw new IllegalStateException("Could not execute " + "method of the activity", e); } } }); } ,复合视图中的“购买”btnBuyButton是包含所有属性的a

有人可以帮帮我吗?

0 个答案:

没有答案